关于ios:使用pthreads该模型安全吗?

Is this model safe with pthreads?

我有两个线程(主线程和后台线程),它们可以通过套接字对进行通信。主线程等待从套接字读取。后台线程加载并处理文件,然后它将数据发送到主线程。

通过套接字仅从后台线程发送指针是一个好主意吗?一旦在主线程上收到指向所有数据的指针,是否可以确保所有数据都处于正确的状态?

我问这个问题是因为我想知道处理器中的内存缓存是否可能存在任何问题,因为后台线程可能在其他内核上运行。

我正在iOS和OS X上工作,并且可以将套接字上的等待集成到运行循环中(使用CFSocket)。

我知道使用GCD可能会更好,但是我想学习pthreads。


read()write()不包含在"同步内存的功能"的POSIX列表中,因此从技术上讲,这不能保证POSIX可以正常工作。

您将需要使用POSIX同步功能-例如,pthread_barrier_wait()在这里可能合适(发送功能在存储数据并发布指针之后执行屏障;接收功能在读取数据之前执行屏障) 。