[英]Sharing Condition and Lock variable Across Classes in Java
我想編寫一個程序,其中兩個單獨的線程運行兩個對象,一個線程等待執行其代碼,直到另一個線程發出信號。
現在要做到這一點,我想使用Condition
接口。
我無法弄清楚在我的代碼中在哪里聲明lock
和condition
變量,以便兩個類都可以訪問它。
我想問的是,線程如何共享lock
和condition
變量,以確保它們在相同的條件下發出信號和等待。
線程必須有某種連接才能工作。 如果線程 1 引用了線程 2,則鎖和條件變量可能在線程 2 中,反之亦然。
如果不是,則變量必須位於兩個線程都可以訪問的單獨類中。 因此,您必須將該類的相同實例傳遞給兩個線程,以便該實例成為共享資源。 以下示例假設您有類Thread1
和Thread2
與構造以繼承Thread SharedResource
作為參數:
SharedResource sr = new SharedResource();
Thread1 t1 = new Thread1(sr);
Thread2 t2 = new Thread2(sr);
t1.start();
t2.start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.