SlideShare a Scribd company logo
1 of 5
WinAPI
Модуль 6.2
В даному модулі:
 Багатопоточність
Andriy Gladkyy
KspDevelop@gmail.com 2
Створення потоку
 Для створення потоку використовується функція
CreateThread. Головними аргументами цієї функції є:
 Покажчик на функцію потоку
 Єдиний аргумент типу void* (або LPVOID), значення
якого буде передано у функцію потоку.
 За допомогою цього покажчика можна передавати будь-
які дані в новий потік з точки його створення.
Наприклад, можна виділити ділянку пам'яті, записати в
нього дані, необхідні новому потоку, і передати покажчик
на цю ділянку пам'яті у функцію CreateThread.
Andrey Gladky
KspDevelop@gmail.co
m 3
Створення потоку
 Повторний виклик CreateThread призводить до
створення ще одного потоку, що виконується одночасно
із створеним, і т.д.
 Таким чином, можна створювати необмежену кількість
потоків, не забуваючи, що кожен новий потік гальмує
виконання інших.
 Для того, щоб створити потік "замороженим" (або зупиненим,
suspended), потрібно передати в CreateThread значення
CREATE_SUSPENDED в передостанньому аргументі:
Andrey Gladky
KspDevelop@gmail.co
m 4
Демонстрація
Andrey Gladky
KspDevelop@gmail.co
m 5

More Related Content

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. SerializationAndrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsAndrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesAndrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOPAndrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+Andrii Hladkyi
 

More from Andrii Hladkyi (20)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 

Win api module_6.2

  • 2. В даному модулі:  Багатопоточність Andriy Gladkyy KspDevelop@gmail.com 2
  • 3. Створення потоку  Для створення потоку використовується функція CreateThread. Головними аргументами цієї функції є:  Покажчик на функцію потоку  Єдиний аргумент типу void* (або LPVOID), значення якого буде передано у функцію потоку.  За допомогою цього покажчика можна передавати будь- які дані в новий потік з точки його створення. Наприклад, можна виділити ділянку пам'яті, записати в нього дані, необхідні новому потоку, і передати покажчик на цю ділянку пам'яті у функцію CreateThread. Andrey Gladky KspDevelop@gmail.co m 3
  • 4. Створення потоку  Повторний виклик CreateThread призводить до створення ще одного потоку, що виконується одночасно із створеним, і т.д.  Таким чином, можна створювати необмежену кількість потоків, не забуваючи, що кожен новий потік гальмує виконання інших.  Для того, щоб створити потік "замороженим" (або зупиненим, suspended), потрібно передати в CreateThread значення CREATE_SUSPENDED в передостанньому аргументі: Andrey Gladky KspDevelop@gmail.co m 4