2010-10-04 120 views
1

我想知道是否有人对线程或进程之间共享数据(通过共享内存段)有一些想法或反馈。我正在考虑传递线程/处理某个所有权对象(通过管道/同步队列)。唯一可以访问数据的线程是拥有该对象(或内存区域)所有权的线程。如果一个线程想要访问其他地方的对象,那么它会得到一个异常或阻塞。任何想法如何干净地实施这个协议?共享对象协议

+0

这还远远不够。什么是操作系统?语言?运行时环境?吞吐量要求? – egrunin 2010-10-04 02:07:40

+0

你可以把C语言作为语言(即使我没有针对任何特定的操作系统/语言)。我认为这对这些选择可能是透明的,即使你是对的,可能会有一些细节可能会加快速度。我应该也许使用了Pattern而不是Protocol。 – Dave 2010-10-04 02:12:53

回答

1

如果您可以扩展可能的语言以包含C++,Boost.Interprocess支持便携式共享内存。

您应该能够通过将其与condition variable in Boost.Thread相结合来实现您所描述的阻塞。

+0

的确听起来确实是一个很好的起点。你是否知道任何描述这种行为的文档/软件(实际上我想到了从MSFT看到的关于他们的下一代操作系统世代称为奇点的视频) – Dave 2010-10-05 13:17:43