您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關notifyall怎么在java中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
1.概念
對象調用該方法時,隊列中所有處于阻塞狀態的線程不再阻塞(當然,哪一個線程先運行由系統決定)
2.語法
public final void notifyAll()
3.參數
無
4.返回值
沒有返回值
5.使用注意
喚醒的是notify之前wait的線程,對于notify之后的wait線程是沒有效果的。
6.實例
class myThread implements Runnable{ private boolean flag ; private Object object ; myThread(boolean flag, Object o){ this.flag = flag; this.object = o; } private void waitThread(){ synchronized (object) { System.out.println(Thread.currentThread().getName() + "wait begin..."); try { object.wait(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "wait end..."); } } private void notifyThread(){ synchronized (object) { System.out.println(Thread.currentThread().getName() + "notify begin..."); object.notify(); System.out.println(Thread.currentThread().getName() + "notify end..."); } } @Override public void run() { if(flag){ waitThread(); }else { notifyThread(); } } } public class Test { public static void main(String[] args) throws InterruptedException { Object object = new Object(); myThread mt2 = new myThread(false,object); Thread thread1 = new Thread(mt2,"線程B "); for (int i = 0;i<10;i++) { myThread mt = new myThread(true,object); Thread thread = new Thread(mt,"線程A "+i); thread.start(); } Thread.sleep(1000); thread1.start(); } }
看完上述內容,你們對notifyall怎么在java中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。