gpt4 book ai didi

java - 在 Java 中跨类共享条件和锁定变量

转载 作者:行者123 更新时间:2023-11-30 09:29:59 25 4
gpt4 key购买 nike

我想编写一个程序,其中两个独立的线程运行两个对象,一个线程等待执行其代码,直到另一个线程发出信号。

现在要执行此操作,我想使用 Condition 界面。

我无法确定在我的代码中声明 lockcondition 变量的位置,以便两个类都可以访问它。

我想问的是,线程如何共享 lockcondition 变量,以确保它们在相同的条件下发出信号和等待。

最佳答案

线程必须有某种连接才能工作。如果线程 1 引用了线程 2,则锁和条件变量可能在线程 2 中,反之亦然。

如果不是,则变量必须位于两个线程都可以访问的单独类中。因此,您必须将该类的同一个实例传递给两个线程,以便该实例成为共享资源。以下示例假设您有类 Thread1Thread2,它们使用以 SharedResource 作为参数的构造函数扩展 Thread:

SharedResource sr = new SharedResource();
Thread1 t1 = new Thread1(sr);
Thread2 t2 = new Thread2(sr);
t1.start();
t2.start();

关于java - 在 Java 中跨类共享条件和锁定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447953/

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