명명된 파이프는 IPC(프로세스 간 통신)를 위한 강력한 방법을 제공하여 서로 다른 프로그램 간에 효율적인 데이터 교환을 가능하게 합니다. 이 예는 하나의 프로세스가 메시지를 보내고 응답을 받는 기본 테스트 애플리케이션을 보여줍니다.
Python 코드는 multiprocessing
모듈을 사용하여 송신자 및 수신자 프로세스를 생성합니다.
발신자 프로세스:
<code class="language-python">import multiprocessing def sender(): pipe_in, pipe_out = multiprocessing.Pipe() p = multiprocessing.Process(target=receiver, args=(pipe_in,)) p.start() pipe_out.send("Hello from Python") p.join() </code>
수신 프로세스:
<code class="language-python">def receiver(pipe_in): message = pipe_in.recv() print(message) # Output: Hello from Python pipe_in.send("Acknowledged from Python")</code>
C# 코드는 IPC 메커니즘을 위해 명명된 파이프 클라이언트와 서버 스트림을 활용합니다.
<code class="language-csharp">using System; using System.IO; using System.IO.Pipes; using System.Threading.Tasks; class Program { static void Main() { StartServer(); Task.Delay(1000).Wait(); // Allow server to start // Client using (var client = new NamedPipeClientStream("PipesOfPeace")) { client.Connect(); using (StreamWriter writer = new StreamWriter(client)) { writer.WriteLine("Hello from C#"); writer.Flush(); } using (StreamReader reader = new StreamReader(client)) { string response = reader.ReadLine(); // Reads "Acknowledged from C#" Console.WriteLine(response); } } } static void StartServer() { Task.Factory.StartNew(() => { using (var server = new NamedPipeServerStream("PipesOfPeace")) { server.WaitForConnection(); using (StreamReader reader = new StreamReader(server)) { string message = reader.ReadLine(); // Reads "Hello from C#" Console.WriteLine(message); } using (StreamWriter writer = new StreamWriter(server)) { writer.WriteLine("Acknowledged from C#"); writer.Flush(); } } }); } }</code>
두 예 모두 프로세스 간 통신을 위해 명명된 파이프를 사용하는 기본 원칙을 보여줍니다. 메시지를 보내고 받고 응답을 받는 모습은 간단하면서도 효과적인 IPC 솔루션을 보여줍니다.
위 내용은 명명된 파이프는 어떻게 Python 및 C#에서 프로세스 간 통신을 촉진할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!