麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

分析一段代碼理解main函數與子線程間的關系

2019-11-14 12:16:56
字體:
來源:轉載
供稿:網友

main函數和子線程之間的關系,一直搞不太明白,到底誰先執行:

(程序是引用別人的一段程序)

實現的功能:

編寫程序實現,子線程循環10次,接著主線程循環20次,接著再子線程循環10次,主線程循環20次,如此反復,循環5次.

public class Demo01 {	  public static void main(String[] args) {	       final Function f=new Function();	      new Thread(	              new Runnable(){	                  public void run() {	                      for(int i=0;i<5;i++){	                          f.sub();	                      }	                  }	              	              }	              ).start();	      System.out.PRintln("---1----");	      for(int i=0;i<5;i++){	          f.main();	      }	  }	}
//編寫功能類,實現子線程和主線程的功能class Function{  private boolean flag=false;  //子線程要實現的功能  public synchronized void sub(){	  System.out.println("---sub---");      while(flag){          try {              this.wait();          } catch (InterruptedException e) {              e.printStackTrace();          }      }                   for(int i=0;i<10;i++){          //for循環內定義子線程的功能,這里簡單的假設為打印一句話,主線程同理          System.out.println("sub"+i);      }            flag=true;      this.notify();  }  //主線程要實現的功能  public synchronized void main(){	  System.out.println("---main---");      while(!flag){          try {              this.wait();          } catch (InterruptedException e) {              e.printStackTrace();          }      }      for(int i=0;i<20;i++){          System.out.println("main"+i);      }            flag=false;      this.notify();  }  }

wait是讓使用wait方法的對象等待,暫時先把對象鎖給讓出來,給其它持有該鎖的對象用,其它對象用完后再告知(notify)等待的那個對象可以繼續執行了,因此,只有在synchronized塊中才有意義(否則,如果大家并不遵循同步機制,那還等誰呢?根本沒人排隊,也就談不上等待和喚醒了)

這段程序從main函數進入,然后new Thread一個線程,這個線程的創建使用了內部類的創建模式,new Thread(new Runnable(){public void run(){}}).start();,子線程就緒;此時main函數也是一個線程,相當于主線程,然后這兩個線程同時競爭cpu的處理時間,所以會出現也能先執行了sub,也可能先執行了main。此時不管先執行那個,在Function類中,都先執行sub。因為如果先執行了main,則主線程wait,進入阻塞狀態,把鎖讓出來;如果先執行sub,sub執行了10次之后notify了一下,釋放鎖。已備下次調用。


上一篇:PYTHON 下劃線作用

下一篇:錯誤票據

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产成人小视频在线观看 | 国产精品一区二区在线 | 极品国产91在线网站 | 午夜视频在线 | 91九色精品 | 国人精品视频在线观看 | 日韩理论电影网 | 精品一二三区视频 | 369看片你懂的小视频在线观看 | 黄色大片免费看 | 日日草视频 | 黑人三级毛片 | 久久久噜噜噜久久熟有声小说 | 史上最强炼体老祖动漫在线观看 | 久草影音| 国产999视频在线观看 | 美国av在线免费观看 | 国产亚洲精品视频中文字幕 | 欧美日韩大片在线观看 | 99最新网址 | 在线播放污 | 国产午夜亚洲精品理论片大丰影院 | 国产大片全部免费看 | 欧美黄色一级片在线观看 | 免费毛片在线视频 | 欧美精品成人一区二区在线观看 | 成人一级毛片 | 欧美1—12sexvideos | 精品一区二区三区免费 | 特级西西444www大精品视频免费看 | 亚洲第一激情 | 久国产 | 日韩av在线网址 | 国产人成精品一区二区三 | 黄色一级片毛片 | 欧美黄色三级视频 | 特片网久久 | 欧洲成人综合网 | 午夜噜噜噜 | 九九热在线视频免费观看 | 久久国产精品二国产精品中国洋人 |