Java多執行緒應用 condition的使用

2021-06-17 18:54:29 字數 1452 閱讀 8007

它沒有明確指定喚醒那條執行緒。

下面是乙個例項:同起三條執行緒,分別執行private aaa a = new aaa(); 物件的三個方法,讓三個方法按指定的順序列印輸入,先是ooo方法迴圈3次,接著nnn方法迴圈5次,接著mmm方法迴圈7次,這樣依次執行迴圈10次

/**

* @classname: conditiontest

* @author yangxuan

* @date aug 5, 2013 1:18:56 pm

*/public class conditiontest

public void aaa()

}}, "i am thread-3").start();

new thread(new runnable()

}}, "i am thread-2").start();

new thread(new runnable()

}}, "i am thread-1").start();

} class aaa catch (interruptedexception e)

}system.out.println(thread.currentthread().getname() + " --" + count

+ "-- ");

for (int i = 1; i <= 7; i++)

system.out.println(); // 這裡讓執行緒3輸出完後換一下行,好看一點

condition1.signal();

flag = 1;

lock.unlock();

} public void nnn(int count) catch (interruptedexception e)

}system.out.println(thread.currentthread().getname() + " --" + count

+ "-- ");

for (int i = 1; i <= 5; i++)

flag = 3;

condition3.signal();

lock.unlock();

} public void ooo(int count) catch (interruptedexception e)

}system.out.println(thread.currentthread().getname() + " --" + count

+ "-- ");

for (int i = 1; i <= 3; i++)

flag = 2;

condition2.signal();

lock.unlock();

} }}

結果:

Java 多執行緒的應用

class info 主資訊類 public string getname public void setcontent string content public string getcontent public synchronized void set string name,string c...

Java多執行緒的應用

一般只要是產生的cpu資源浪費,就需要多執行緒來提公升效率。我們舉乙個例子,例如乙個網路爬蟲專案,其中有兩個環節 這樣的話如果使用單執行緒,平均處理每個 的時間大約是52ms。其實這樣已經產生的大量的資源浪費。在cpu進行資料抓取的50ms時,cpu的資料處理沒辦法進行,所以就要等50ms,之後再處...

java多執行緒應用場景

多執行緒是基於乙個程序的多個執行過程。多執行緒貌似是提高了處理機的處理速度。實際是這樣麼?假設我們要做一萬次for迴圈,有十個執行緒,每個執行緒做1000次。那麼多執行緒會比單執行緒執行的快麼。針對單核cpu來說,單執行緒是最快的。因為多執行緒並不是真正意義上的多個一起執行。而是每個程序都在一定時間...