2011-02-02 8 views
2

부모로부터 자식까지 별도로 생성 된 프로세스가 많습니다. 프로세스는 특정 프로세스로 메시지를 보내야합니다. 수신 프로세스 주소 (pid)는 데이터베이스에 저장할 수 있지만 프로세스는 메모리에서 공통 변수를 공유 할 수 없습니다.무관 한 프로세스를 가진 파이썬 다중 프로세싱

pythons 다중 프로세스 패키지로이 작업을 수행 할 수있는 방법을 찾지 못했고 소켓 기반 서버를 살펴 보았습니다. 그러나 이러한 종류의 아키텍처가 다중 처리로 구현 될 수 있다면이 문제는 여전히 궁금합니다. 이점은 피킹 가능한 물건을 쉽게 지나칠 수 있습니다.

답변

2

프로세스가 특정 프로세스에 메시지를 보내야합니다. 수신 프로세스 주소 (pid)는 데이터베이스에 저장할 수 있지만 프로세스는 메모리에서 공통 변수를 공유 할 수 없습니다.

데이터베이스? 왜? 파일은 저렴하고 사용 가능하며 하나의 정수 값만 저장하므로 모든 사람이이 파일을 사용합니다.

또한. 파일을 사용하기 때문에보다 흥미로운 선택을 할 수 있습니다.

  1. 모든 프로세스는 명명 된 파이프에 메시지를 씁니다. 수신 프로세스는 명명 된 파이프에서 요청을받습니다.

  2. 모든 프로세스는 파일에 메시지를 씁니다. 간단한 잠금은 한 번에 하나의 프로세스 만 파일에 액세스하여 직렬화를 보장합니다. 수신 프로세스는이 파일에서 읽습니다.

  3. 모든 프로세스는 HTTP를 사용하여 수신 프로세스에 RESTful 요청을합니다. 수신 프로세스는 제거 된 HTTP 서버 프레임 워크를 사용하여 요청을 처리합니다.

  4. 모든 프로세스는 메시지 대기열에 메시지 대기열을 사용합니다. 수신 프로세스는 메시지를 대기열에서 제외합니다. 대기열은 파일입니다.

등. 물론 그렇습니다. 그러나 그들은 OS 특유의 것을 얻기 시작합니다.

관련 문제