在 Java 中的类之间共享条件和锁定变量



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

现在要做到这一点,我想使用 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();

最新更新