16. [pywin32] OpenSemaphore 함수

pywin32/win32event|2020. 9. 20. 00:53

PyHANDLE = OpenSemaphore(desiredAccess, bInheritHandle , name )

 

만들어진 세마포어를 오픈하는 함수입니다.

 

인자로는 desiredAccess : int, bInheritHandle : bool, name : PyUnicode 가 있습니다.

 

desiredAccess는 세마포어에 대한 접근권한입니다.

 - win32event.EVENT_ALL_ACCESS: 객체에 대한 모든 권한을 부여합니다.(세마포어는 이 권한을 사용해야 합니다.)

 

bInheritHandle은 TRUE/FALSE 둘 중 하나를 가집니다.

 - win32con.TRUE: 호출하는 프로그램의 핸들을 상속합니다.

 - win32con.FALSE: 호출하는 프로그램의 핸들을 상속하지 않습니다.

 

name은 CreateSemaphore 함수 사용 시 사용했던 세마포어의 이름입니다.

 

Return 값은 오픈한 세마포어의 핸들값입니다.

 

 

import win32event
import win32con
import win32api

x = win32event.CreateSemaphore(None, 1, 2, "semaTest")

sHandle=win32event.OpenSemaphore(win32event.EVENT_ALL_ACCESS, win32con.FALSE, "semaTest")

print("Main Thread\n")

win32api.CloseHandle(sHandle)
win32api.CloseHandle(x)

위의 예제는 OpenSemaphore의 사용을 보여주기 위해 적었으나, 사실 CreateSemaphore로 만들어서 그대로 사용해도 되고, OpenSemaphore는 다른 프로세스에서 호출하는 식으로 사용합니다.

 

 

반응형

댓글()