2. [pywin32] beginthreadex 함수
pywin32/win32process2020. 10. 27. 00:19
PyHANDLE, int = beginthreadex(sa, stackSize , entryPoint , args , flags )
쓰레드를 생성하는 함수입니다.
인자로는 sa : PySECURITY_ATTRIBUTES, stackSize : int, entryPoint : function, args : tuple, flags : int 가 있습니다.
sa는 보안 속성으로 None으로 두셔도 무방합니다.
stackSize는 쓰레드에 할당할 스택의 크기로서 0으로 두시면 기본 스택 사이즈를 사용합니다.
entryPoint는 쓰레드로 실행시킬 함수를 넣어주시면 됩니다.
args는 튜플 형태로 entryPoint에 맞는 인자를 넣어주시면 됩니다.
flags는 쓰레드 시작 상태를 정할 수 있습니다.
- win32process.CREATE_SUSPENDED : 쓰레드를 생성하지만 바로 시작하지 않습니다. (ResumeThread 함수 필요)
- 0 : 쓰레드를 생성하고 실행합니다.
리턴 값은 [PyHANDLE, int] 로 각각 쓰레드 핸들과 쓰레드 ID 입니다.
import win32process
import win32api
res1 = None
def cnt1():
i = 0
print(f"cnt1 : {i}\n")
def cnt2(value):
global res1
print(f"cnt2 : {value}\n")
win32api.Sleep(3000)
win32process.ResumeThread(res1[0])
q = tuple()
p = (3,)
res1 = win32process.beginthreadex(None, 0, cnt1, q, win32process.CREATE_SUSPENDED)
res2 = win32process.beginthreadex(None, 0, cnt2, p, 0)
2개의 쓰레드를 생성하였습니다. cnt2가 먼저 실행되고 3초후 ResumeThread로 cnt1 쓰레드가 실행됩니다.
결과입니다~
반응형
'pywin32 > win32process' 카테고리의 다른 글
6. [pywin32] SetThreadPriority & Boost 함수 (0) | 2020.12.22 |
---|---|
5. [pywin32] GetThread... 관련 함수 (0) | 2020.12.21 |
4. [pywin32] ResumeThread 함수 (0) | 2020.10.27 |
3. [pywin32] SuspendThread 함수 (0) | 2020.10.27 |
1. [pywin32] win32process 소개 (0) | 2020.08.31 |
댓글()