두 개의 녹 스레드가 있습니다. 한 스레드에서 다른 스레드로 구조체를 보내려면 채널을 사용할 것입니다. 이제이 스레드를 두 개의 OS 프로세스로 분할하려고합니다.하나의 프로세스에서 다른 프로세스로 구조체를 보내는 가장 간단한 방법은 무엇입니까?
TCP 소켓을 사용하고 JSON을 앞뒤로 직렬화하는 것보다 간단한 방법이 있습니까?
나는이 모든 것에 상당히 익숙하므로 어떤 용어가 Google인지 모르겠다.
두 개의 녹 스레드가 있습니다. 한 스레드에서 다른 스레드로 구조체를 보내려면 채널을 사용할 것입니다. 이제이 스레드를 두 개의 OS 프로세스로 분할하려고합니다.하나의 프로세스에서 다른 프로세스로 구조체를 보내는 가장 간단한 방법은 무엇입니까?
TCP 소켓을 사용하고 JSON을 앞뒤로 직렬화하는 것보다 간단한 방법이 있습니까?
나는이 모든 것에 상당히 익숙하므로 어떤 용어가 Google인지 모르겠다.
당신이 찾고있는 키워드에 대한 Google의 관점에서 프로세스 간 통신 (IPC)입니다. 이미 주석에서 언급했듯이 Rust는 표준 라이브러리에서 많은 것을 제공하지 않습니다.
프로세스 간 통신을 수행하는 방법에는 여러 가지가 있으며, 각각 고유의 이점과 단점이 있습니다. 어쩌면 here 읽기 시작, 그것은 당신에게 어떤 Google에 대한 몇 가지 힌트를 줄 것이다.
당신의 질문에 특히, json으로 구조체를 직렬화 할 때 성능이 걱정된다면 바이너리 형식을 고수 할 수 있습니다. Bson
을 보시면 도움이 될 수 있습니다.
감사합니다. 나는 지금 다른 옵션을 읽고있다. 나는 대체로 효율적이지 않은 무엇인가를 찾고 있습니다. 이상적으로는 채널처럼 "효과가 있습니다". – yawn
IPC를 수행하는 실제 "쉬운"방법이 없다는 것이 두렵습니다. 일부 또는 다른 오버 헤드가 있습니다. 나는 TCP/Unix 소켓이 더 쉬운 방법이라고 말하고 싶다. 어쨌든, 어떻게 든 데이터를 직렬화해야합니다. json의 복잡성을 없애기 위해, 평범한'[u8]', 즉 raw 바이트로 직렬화 할 수 있습니다. [this so question] (https://stackoverflow.com/questions/28127165/how-to-convert-struct-to-u8)을 살펴보십시오. – StarSheriff
[관련 질문] (https://stackoverflow.com/q/27683266/1233251). 표준 라이브러리에는 IPC를 직접 사용할 수있는 방법이 없지만 여러 개의 상자가 있습니다. –
감사. 나는 약간의 옵션에 압도되어있다. 개인적으로 어떤 상자를 사용합니까? – yawn