Introduction to Multithreading
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state

Menu toggling

q Quotes r References f Filter c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Credits Menu

Enter Open URL (in new tab)
2:50Blackboard: Multithreading
2:50Blackboard: Multithreading
2:50Blackboard: Multithreading
3:35Blackboard: CPU state
3:35Blackboard: CPU state
3:35Blackboard: CPU state
5:08Blackboard: How the OS conceptualises this
5:08Blackboard: How the OS conceptualises this
5:08Blackboard: How the OS conceptualises this
6:55Blackboard: Threads
6:55Blackboard: Threads
6:55Blackboard: Threads
8:24Blackboard: Fibers
8:24Blackboard: Fibers
8:24Blackboard: Fibers
9:38Blackboard: Why do we care about this?
9:38Blackboard: Why do we care about this?
9:38Blackboard: Why do we care about this?
12:10Blackboard: "Core"
12:10Blackboard: "Core"
12:10Blackboard: "Core"
14:16Blackboard: "Hyperthread"
14:16Blackboard: "Hyperthread"
14:16Blackboard: "Hyperthread"
18:16Blackboard: The OS comes in and switches
18:16Blackboard: The OS comes in and switches
18:16Blackboard: The OS comes in and switches
19:40Blackboard: Logical cores
19:40Blackboard: Logical cores
19:40Blackboard: Logical cores
22:33Blackboard: "Out of order" vs "In order"
22:33Blackboard: "Out of order" vs "In order"
22:33Blackboard: "Out of order" vs "In order"
24:08Blackboard: The OS and "interrupts"
24:08Blackboard: The OS and "interrupts"
24:08Blackboard: The OS and "interrupts"
27:59Blackboard: "Preemption"
27:59Blackboard: "Preemption"
27:59Blackboard: "Preemption"
30:17Blackboard: What we have to do on Handmade Hero
30:17Blackboard: What we have to do on Handmade Hero
30:17Blackboard: What we have to do on Handmade Hero
32:11Run Handmade Hero and monitor its CPU usage
32:11Run Handmade Hero and monitor its CPU usage
32:11Run Handmade Hero and monitor its CPU usage
34:41Switch to DrawRectangleSlowly
34:41Switch to DrawRectangleSlowly
34:41Switch to DrawRectangleSlowly
37:11Blackboard: Why not do faster single-threaded processing?
37:11Blackboard: Why not do faster single-threaded processing?
37:11Blackboard: Why not do faster single-threaded processing?
40:47Set the stage to create some threads
40:47Set the stage to create some threads
40:47Set the stage to create some threads
43:27win32_handmade.cpp: Introduce CreateThread1,2
43:27win32_handmade.cpp: Introduce CreateThread1,2
43:27win32_handmade.cpp: Introduce CreateThread1,2
49:29Run the code and exit
49:29Run the code and exit
49:29Run the code and exit
50:15Temporarily create lots of threads
50:15Temporarily create lots of threads
50:15Temporarily create lots of threads
50:46Solidify things3,4
50:46Solidify things3,4
50:46Solidify things3,4
53:14What happens on exit5
53:14What happens on exit5
53:14What happens on exit5
57:27Hype up building without CRT
57:27Hype up building without CRT
57:27Hype up building without CRT
58:36The compiler doesn't know about threading
58:36The compiler doesn't know about threading
58:36The compiler doesn't know about threading
1:00:03Q&A
🗩
1:00:03Q&A
🗩
1:00:03Q&A
🗩
1:00:27knozza What does closing the handle of a thread do for you when you release the handle to the OS? Does it open up resources and increase performance?
🗪
1:00:27knozza What does closing the handle of a thread do for you when you release the handle to the OS? Does it open up resources and increase performance?
🗪
1:00:27knozza What does closing the handle of a thread do for you when you release the handle to the OS? Does it open up resources and increase performance?
🗪
1:01:32woodkami Doesn't increasing the number of threads to match the hyperthreads count increase cross-core/cross-context switches, thus making it less efficient for small operations?
🗪
1:01:32woodkami Doesn't increasing the number of threads to match the hyperthreads count increase cross-core/cross-context switches, thus making it less efficient for small operations?
🗪
1:01:32woodkami Doesn't increasing the number of threads to match the hyperthreads count increase cross-core/cross-context switches, thus making it less efficient for small operations?
🗪
1:03:21microhive Is there any advantage to creating a separate process to render the graphics in the context of game development?
🗪
1:03:21microhive Is there any advantage to creating a separate process to render the graphics in the context of game development?
🗪
1:03:21microhive Is there any advantage to creating a separate process to render the graphics in the context of game development?
🗪
1:04:58Miblo Is it still a while yet before we look at other platform layers than win32?
🗪
1:04:58Miblo Is it still a while yet before we look at other platform layers than win32?
🗪
1:04:58Miblo Is it still a while yet before we look at other platform layers than win32?
🗪
1:05:31deepmist Why just 15 threads? Why not future proof?
🗪
1:05:31deepmist Why just 15 threads? Why not future proof?
🗪
1:05:31deepmist Why just 15 threads? Why not future proof?
🗪
1:06:19justy989 Will we be querying the system for its CPU count to determine how many threads to use?
🗪
1:06:19justy989 Will we be querying the system for its CPU count to determine how many threads to use?
🗪
1:06:19justy989 Will we be querying the system for its CPU count to determine how many threads to use?
🗪
1:06:28BrainCruser Do you have control over on which core the thread executes from the program itself (thread affinity)?
🗪
1:06:28BrainCruser Do you have control over on which core the thread executes from the program itself (thread affinity)?
🗪
1:06:28BrainCruser Do you have control over on which core the thread executes from the program itself (thread affinity)?
🗪
1:07:57moreaxes Do you plan to make path-finding multithreaded?
🗪
1:07:57moreaxes Do you plan to make path-finding multithreaded?
🗪
1:07:57moreaxes Do you plan to make path-finding multithreaded?
🗪
1:08:25abnercoimbre Q: Jonathan Blow had created 10,000 threads on his compiler demo. Some people wondered how in the world that could happen
🗪
1:08:25abnercoimbre Q: Jonathan Blow had created 10,000 threads on his compiler demo. Some people wondered how in the world that could happen
🗪
1:08:25abnercoimbre Q: Jonathan Blow had created 10,000 threads on his compiler demo. Some people wondered how in the world that could happen
🗪
1:09:53garlandobloom No one will ever need more than 16 threads
🗪
1:09:53garlandobloom No one will ever need more than 16 threads
🗪
1:09:53garlandobloom No one will ever need more than 16 threads
🗪
1:10:05d7samurai Nobody will ever need more than 256 colors. Ever. - the GIF committee
🗪
1:10:05d7samurai Nobody will ever need more than 256 colors. Ever. - the GIF committee
🗪
1:10:05d7samurai Nobody will ever need more than 256 colors. Ever. - the GIF committee
🗪
1:10:51zarickan Not related, but why do you use C over C++? Is it just personal preference?
🗪
1:10:51zarickan Not related, but why do you use C over C++? Is it just personal preference?
🗪
1:10:51zarickan Not related, but why do you use C over C++? Is it just personal preference?
🗪
1:12:11kknewkles Okay. Can we stay on stream after you end the episode's recording for another try on the story?
🗪
1:12:11kknewkles Okay. Can we stay on stream after you end the episode's recording for another try on the story?
🗪
1:12:11kknewkles Okay. Can we stay on stream after you end the episode's recording for another try on the story?
🗪
1:12:20kknewkles I'll email you the story, meanwhile, here's two other questions: 1) Which programmers' code would you recommend reading? Let's list Sean Barrett's public github (as well as streams from time to time) to start the list
🗪
1:12:20kknewkles I'll email you the story, meanwhile, here's two other questions: 1) Which programmers' code would you recommend reading? Let's list Sean Barrett's public github (as well as streams from time to time) to start the list
🗪
1:12:20kknewkles I'll email you the story, meanwhile, here's two other questions: 1) Which programmers' code would you recommend reading? Let's list Sean Barrett's public github (as well as streams from time to time) to start the list
🗪
1:12:48kknewkles 2) When are we covering patching / couple of words on brief basics? I assume it mostly has to deal with asset updates and updates of code that handles them?
🗪
1:12:48kknewkles 2) When are we covering patching / couple of words on brief basics? I assume it mostly has to deal with asset updates and updates of code that handles them?
🗪
1:12:48kknewkles 2) When are we covering patching / couple of words on brief basics? I assume it mostly has to deal with asset updates and updates of code that handles them?
🗪
1:14:20wofiel What was the reason for dismissing the use of fibers early on?
🗪
1:14:20wofiel What was the reason for dismissing the use of fibers early on?
🗪
1:14:20wofiel What was the reason for dismissing the use of fibers early on?
🗪
1:14:58maudrid Have you made any progress on the licence text for ports to other programming languages?
🗪
1:14:58maudrid Have you made any progress on the licence text for ports to other programming languages?
🗪
1:14:58maudrid Have you made any progress on the licence text for ports to other programming languages?
🗪
1:16:10theepsylon Would it be possible for you to boost the sound of your voice on stream? I've always found that it is barely high enough even with all mixers at maximum volume possible
🗪
1:16:10theepsylon Would it be possible for you to boost the sound of your voice on stream? I've always found that it is barely high enough even with all mixers at maximum volume possible
🗪
1:16:10theepsylon Would it be possible for you to boost the sound of your voice on stream? I've always found that it is barely high enough even with all mixers at maximum volume possible
🗪
1:16:39Wrap things up
1:16:39Wrap things up
1:16:39Wrap things up