C/C++多线程:受限共享内存访问

C/C++多线程:受限共享内存访问,c++,c,multithreading,pthreads,C++,C,Multithreading,Pthreads,我想有一些方法可以实现基于pthread的多线程访问受限共享ram,但找不到它 这个想法是有几个线程,它们应该能够基于某种访问管理(如用户、组、所有)彼此共享一些ram 因此,需要有一个层/管理器来决定是否授予访问权。这当然要付出性能的代价。在实现一些幼稚的东西之前,我想看看其他人是如何做到这一点的 亚历克斯 编辑: 背景:我将完成许多>1000的任务/流程。由于进程开销较大,因此我选择了任务…为什么不使用共享内存的多进程?太广泛了,请详细说明您的问题。作为跨越船头的射击:确定需要>1000条线

我想有一些方法可以实现基于pthread的多线程访问受限共享ram,但找不到它

这个想法是有几个线程,它们应该能够基于某种访问管理(如用户、组、所有)彼此共享一些ram

因此,需要有一个层/管理器来决定是否授予访问权。这当然要付出性能的代价。在实现一些幼稚的东西之前,我想看看其他人是如何做到这一点的

亚历克斯

编辑:
背景:我将完成许多>1000的任务/流程。由于进程开销较大,因此我选择了任务…

为什么不使用共享内存的多进程?太广泛了,请详细说明您的问题。作为跨越船头的射击:确定需要>1000条线吗?听起来您可能首先要重新考虑设计。>1000?是的,它是关于基于代理的系统。代理应该是线程或进程。我可以使用一个进程,管理代理,然后我需要添加一个调度层…嗯。人们可以尝试使用进程,暂停它们,并在一段时间内只唤醒其中一些进程。这将允许只有合理数量的活动进程,同时能够保持代理的状态。这对于硬件来说是灵活的,因为在不同的硬件上,可以使用不同的活动进程…您正在编写这些代理,所以您可以信任它们?让每个代理在表中查找是否可以访问某些内容。不要创建1000个线程。创建处理1000个/num\u cpu代理的num\u cpu线程,每个线程将代理实现为任务,并将它们添加到队列中。