它沒有明確指定喚醒那條執行緒。
下面是乙個例項:同起三條執行緒,分別執行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來說,單執行緒是最快的。因為多執行緒並不是真正意義上的多個一起執行。而是每個程序都在一定時間...