我正在做一个项目,我必须让线程进行通信。
例如
我有两个线程数组,c[100]
和e[10]
。 (客户和员工)
一旦客户说 c[3]
获取一个信号量,让它与其中一名员工交谈,员工说 e[5]
,如何关联 Customer
线程代表的对象c[3]
到Employee
对象e[5]
,并让他们来回传递信息?
最佳答案
有多种技术可以允许线程通信信息。最简单的方法是共享状态上的互斥体。最经典的可扩展方式之一是消息队列。您需要使用的方式取决于您的作业说明。
一般来说,使用同步原语(无论是互斥锁、信号量还是其他什么)来保护共享状态,并让非共享状态正常运行。如果您有员工和客户,也许他们通过共享的“邮件槽”进行通信。使用信号量保护该邮件槽,以防止一个人在另一个人正在写入时尝试读取(反之亦然),这样您就拥有了所需的主要策略。
关于Java线程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5614625/