gpt4 book ai didi

java - 如何在 Java 中使用监视器(同步)

转载 作者:行者123 更新时间:2023-12-01 12:24:09 24 4
gpt4 key购买 nike

我希望在 Java 中创建多个异步线程并在它们之间传递消息。我将数据发送到目标节点中的数据结构,然后它们轮询它。但对该数据结构的访问必须被锁定。

我使用这一行来创建锁:

private final Object lock = new Object();

这个函数访问结构:

public int mailboxSize()
{
synchronized (lock)
{
return mailbox.size();
}
}

我担心的是,如果所有节点都在其代码中使用此类/cookie-cutter,则所有锁都将相同,并且我将只有 1 个锁,而不是我希望的 n 个锁。真的吗?如果是这样,如何为每个节点创建唯一的锁?也许一些递增的 id ?锁是否必须是 object 类型,或者我可以使用 int 或 Integer 来代替吗?

提前致谢!

最佳答案

看看 BlockingQueue接口(interface)和实现它的类。

在此链接的中间部分,有一些代码展示了如何设置生产者和一些多线程消费者。我想这就是你想要的。

关于java - 如何在 Java 中使用监视器(同步),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com