Unlike POSIX threads created with fork, Java threads are lightweight and share the same address space. There is no need for C-Style IPC in Java, and PipedInputStream / PipedOutputStream is definitely not created for this purpose. Objective-C streams are built on POSIX, but they all use the same virtual memory space, so you will usually not make IPC in ObjC.
If you want to share data between threads in Objective-C, simply write them to the appropriate variable and, if necessary, send a signal between the threads that are available for use. The best way to do this is to use the Terms.
If you intend to do any non-trivial work with streams in Obj C, I highly recommend that you read the Apple thread safety guide .
Perception
source share