목록Windows (2)
Coding Memo
Windows 어플리케이션 개발 시, 하나의 어플리케이션의 실행만 허용해야할 때가 있을 것이다. 예를 들어, 게임에서 클라이언트 다중 실행을 막거나,서버에서 같은 프로그램이 동시에 실행되는 것을 방지하는 등이 있겠다. Windows에서 동일한 응용 프로그램을 여러 번 실행하는 것을 방지하기 위한 방법에는 어떤 것들이 있는지 알아보자. 1. Mutex 이용 멀티 스레드 환경에서 (하나의 응용 프로그램 내에서) 동기화를 위해 mutex를 활용하듯이, 커널에서도 mutex를 사용할 수 있다. 이 mutex는 커널 오브젝트 (kernel object)로, 하나의 프로세스만 해당 자원에 접근 할 수 있도록 할 수 있다.자세한 내용은 다음 글에!https://minttea25.tistory.com/168 Wind..
프로그램 내의 스레드 간 공유 자원에 대한 접근을 제한하는 것처럼 프로세스에서도 어떤 자원에 대해, 같은 응용 프로그램이 동시에 변경을 하거나, 작업을 하면 안되는 경우가 있다. 어떻게 방지 할 수 있을까? 여러 방법 중 하나로, Windows에서 제공하는 mutex를 활용하는 방법이 있다.HANDLE CreateMutexW( [in, optional] LPSECURITY_ATTRIBUTES lpMutexAttributes, [in] BOOL bInitialOwner, [in, optional] LPCWSTR lpName); HANDLE OpenMutexW( [in] DWORD dwDesiredAccess, [in] B..