Windows Mutex for Python
Python 2025. 2. 26. 11:28 |반응형
파이썬에서 윈도우 뮤텍스를 사용해 보자.
아래 링크에서 namedmutex.py를 다운받고 파이썬 프로젝트에 포함시킨다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import namedmutex
#from time import sleep
# with namedmutex.NamedMutex('MyMutex'):
# while True:
# sleep(1)
# print("Running")
mutex = namedmutex.NamedMutex('MyMutex')
if not mutex:
print("Mutex not created.")
exit(-1)
if not mutex.acquire(2):
print("Mutex not acquired.")
mutex.close()
exit(-1)
input("Waiting...")
mutex.release()
mutex.close()
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
using System;
using System.Threading;
public class Program
{
public static void Main()
{
Mutex mutex = new Mutex(false, "MyMutex");
if (!mutex.WaitOne(2000))
{
Console.WriteLine("Signal not received.");
mutex.Close();
return;
}
Console.WriteLine("Waiting...");
Console.ReadLine();
mutex.ReleaseMutex();
mutex.Close();
}
}
|
위 파이썬 프로그램, C# 프로그램 중 중복을 포함하여 아무거나 두 개(두 번) 실행시켜 보면 MyMutex의 상황에 따라 실행 가능 여부를 확인 할 수 있다.
이번엔 뮤텍스를 사용해 프로그램의 중복 실행을 방지하는 코드를 살펴보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import namedmutex
mutex = namedmutex.NamedMutex('MyMutex')
if not mutex:
print("Mutex not created.")
exit(-1)
if not mutex.acquire(0):
print("Program is running already.")
mutex.close()
exit(-1)
input("Waiting...")
mutex.release()
mutex.close()
|
위 프로그램을 실행한 상태에서 또 실행하면 두 번째 실행한 프로그램은 메세지가 출력되고 종료된다.
반응형
'Python' 카테고리의 다른 글
[Pygame] Sorting Algorithms in Python 파이썬 정렬 알고리즘 2 (0) | 2024.03.22 |
---|---|
[Pygame] Sorting Algorithms in Python 파이썬 정렬 알고리즘 1 (1) | 2024.03.09 |
[Pygame] Pygame Gravity 파이게임 중력 (0) | 2024.02.03 |
[Pygame] Pygame Simple Camera 파이게임 간단한 카메라 (0) | 2024.02.02 |
[Pygame] Pygame GUI 파이게임 그래픽 유저 인터페이스 (0) | 2024.01.29 |