2017-12-18 37 views
0

두 개의 녹 스레드가 있습니다. 한 스레드에서 다른 스레드로 구조체를 보내려면 채널을 사용할 것입니다. 이제이 스레드를 두 개의 OS 프로세스로 분할하려고합니다.하나의 프로세스에서 다른 프로세스로 구조체를 보내는 가장 간단한 방법은 무엇입니까?

TCP 소켓을 사용하고 JSON을 앞뒤로 직렬화하는 것보다 간단한 방법이 있습니까?

나는이 모든 것에 상당히 익숙하므로 어떤 용어가 Google인지 모르겠다.

+0

[관련 질문] (https://stackoverflow.com/q/27683266/1233251). 표준 라이브러리에는 IPC를 직접 사용할 수있는 방법이 없지만 여러 개의 상자가 있습니다. –

+0

감사. 나는 약간의 옵션에 압도되어있다. 개인적으로 어떤 상자를 사용합니까? – yawn

답변

1

당신이 찾고있는 키워드에 대한 Google의 관점에서 프로세스 간 통신 (IPC)입니다. 이미 주석에서 언급했듯이 Rust는 표준 라이브러리에서 많은 것을 제공하지 않습니다.

프로세스 간 통신을 수행하는 방법에는 여러 가지가 있으며, 각각 고유의 이점과 단점이 있습니다. 어쩌면 here 읽기 시작, 그것은 당신에게 어떤 Google에 대한 몇 가지 힌트를 줄 것이다.

당신의 질문에 특히, json으로 구조체를 직렬화 할 때 성능이 걱정된다면 바이너리 형식을 고수 할 수 있습니다. Bson을 보시면 도움이 될 수 있습니다.

+0

감사합니다. 나는 지금 다른 옵션을 읽고있다. 나는 대체로 효율적이지 않은 무엇인가를 찾고 있습니다. 이상적으로는 채널처럼 "효과가 있습니다". – yawn

+1

IPC를 수행하는 실제 "쉬운"방법이 없다는 것이 두렵습니다. 일부 또는 다른 오버 헤드가 있습니다. 나는 TCP/Unix 소켓이 더 쉬운 방법이라고 말하고 싶다. 어쨌든, 어떻게 든 데이터를 직렬화해야합니다. json의 복잡성을 없애기 위해, 평범한'[u8]', 즉 raw 바이트로 직렬화 할 수 있습니다. [this so question] (https://stackoverflow.com/questions/28127165/how-to-convert-struct-to-u8)을 살펴보십시오. – StarSheriff