我希望在Java中创建多个异步线程并在它们之间传递消息。我将数据发送到目标节点中的数据结构,然后轮询它。但必须锁定对该数据结构的访问。
我用这一行来创建锁:
private final Object lock = new Object();
这个函数访问结构:
public int mailboxSize()
{
synchronized (lock)
{
return mailbox.size();
}
}
我担心的是,如果所有节点都使用这个类/ cookie-cutter作为他们的代码,那么所有锁都是相同的,我将只有1个锁而不是我希望的n。真的吗?如果是这样,我如何为每个节点创建一个唯一的锁?也许一些递增id?锁是否必须是object类型,还是我可以使用int或Integer?
提前致谢!