두 개의 서로 다른 프로세스간에 python3의 포인터 주소로 배열을 공유하는 방법은 무엇입니까?

데이비드

raspbery pi에서 python 3으로 직렬 포트를 읽고 그래프를 그리는 프로그램이 있습니다. 패킷 당 50 바이트와 1000 패킷 / 초를 얻으므로 이러한 패킷을 가져오고 구문 분석하는 데 약간의 시간이 걸립니다. 따라서 다중 처리 모듈을 사용하여 두 가지 다른 프로세스로 구현하고 각 프로세스에 대한 코어를 사용하기로 결정했습니다. 이를 위해 하나는 read_process로 채워지고 다른 하나는 display_process로 표시되고 세마포어를 사용하여 데이터를 손상시키지 않도록 동기화하는 두 개의 버퍼를 정의했습니다.

그러나 데이터를 공유하는 다중 처리 모듈이 실제 공유 메모리로 예상했던 것과 다르다는 것을 알았습니다.이 모듈은 데이터를 피클하고 각 프로세스로 전송하므로 해당 데이터의 포인터를 전송하는 대신 모든 데이터를 복사하여 속도를 떨어 뜨립니다. 많이. 한 프로세스에서 다른 프로세스로 포인터를 보내는 것이 가능한지 알고 싶습니다 .

데이비드

나는 내 대답을 찾을 수 있었고 다행히 파이썬 버전 3.8 에서는 shared_memory 라는 새 모듈을 추가했습니다.

그리고 그들은 새로운 페이지에서 말했듯이 내 rpi를 위해 python3.8을 빌드합니다. 여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관