def start(self):
self.running = True
while self.running:
pass
def shut_down(self):
self.running = False
안녕하세요, 저는 변수 실행을 동기화하는 좋은 방법을 알고 싶습니다. 빠른 솔루션을 갖고 싶지만 더 좋은 세마포어, 뮤텍스 또는 잠금 장치가 무엇인지 알지 못했습니다. shut_down이 자주 사용되지 않는다고 가정합니다.가변 루프 및 동기화
이것은 최선의 해결책이지만 더 잘할 수 있다고 생각합니다. 부울 플래그와 같은 원시 값과의 간단한 예를 들어
def start(self):
self.__lock__.acquire()
self.running = True
while self.running:
self.__lock__.release()
self.__lock__.acquire()
def shut_down(self):
self.__lock__.acquire()
self.running = False
self.__lock__.release()
여러 개의 클라이언트로 나만의 미니 서버를 작성하고 싶습니다. 다중 처리 또는 스레딩 마녀가 더 좋을까요? – Luffy
@Luffy 정확히 무엇을 기다리고 있는지에 달려 있습니다. 서버가 CPU 집약적 인 작업을 실행하고 있다면 다중 처리를 원할 것입니다. 다중 처리는 파이썬이 동시에 여러 CPU/코어를 사용할 수있게하기 때문입니다. 반면에 서버가 직면하게 될 대부분의 지연이 I/O 관련 (디스크에서 파일 읽기, 네트워크를 통해 물건 보내기/받기) 인 경우 멀티 스레딩으로 충분할 수 있습니다. 필자는 멀티 스레딩이 오버 헤드와 동기화 비용이 적다는 것을 의심하지만 확실하지 않은 경우 다양한 솔루션을 테스트합니다. – Blckknght
자문을 구하십시오. 먼저 스레드로 시도 할 것입니다. – Luffy