我分别有几个线程负责通信会话。 他们每个人都将执行一小段代码,当它们接收到一些数据时,它们仅将一个结构复制到队列中(一个线程一个队列,无锁)。
我不希望它们在对数据进行查询时被挂起,这样我就可以确保时序的一致性(首先接收到首先被查询),并让此关键部分(对等)尽可能快地执行。 / p>
我知道可以使用锁并通过对所有线程使用单个队列来解决该问题,但是我不希望其中的某些线程被阻塞以等待获得锁。
c ++中是否有解决此问题的方法? 我在Linux机器上使用gcc-8.2.0和stl。
事实上,我期望有一种方法,有了它,我可以定义代码的“关键部分”。当线程在该部分中执行时,它们将永远不会被OS挂起/阻塞。
对不起,我的英语不好,希望我表达正确。 谢谢!