国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java解決單緩沖生產者消費者問題示例

java解決單緩沖生產者消費者問題示例

2019-11-21 14:11Java教程網 JAVA教程

這篇文章主要介紹了java解單緩沖生產者消費者問題示例,需要的朋友可以參考下

經典的生產者消費者問題模擬。此程序模擬最簡單情形——單緩沖。為模擬實際情況,consume item和produce item時加了延時,可以通過修改延時模擬不同的生成消費速率。

  1. /** 
  2.  * single buffer consumer-producer problem. 
  3.  * by xu(xusiwei1236@163.com). 
  4.  * */ 
  5. public class ConsumerProducer { 
  6.  
  7.  static Object buffer = null
  8.  
  9.  static Object mutex = new Object(); 
  10.  
  11.  static Object condConsumer = new Object();  
  12.  
  13.  static Object condProducer = new Object(); 
  14.  
  15.  public static void main(String[] args) { 
  16.   Thread producer = new Thread() { 
  17.    public void run() { 
  18. //    for(int i=0; i<10; i++) { 
  19.     for(int i=0; ; i++) { 
  20.      // produce item. 
  21.      try { 
  22.       Thread.sleep(1000); 
  23.      } catch (InterruptedException e) { 
  24.       e.printStackTrace(); 
  25.      } 
  26.      String item = new String("item-" + i); 
  27.      System.out.println("[producer] produced " + item); 
  28.  
  29.      // wait for buffer empty. 
  30.      synchronized (condProducer) { 
  31.       while(buffer != null) { 
  32.        try { 
  33.         condProducer.wait(); 
  34.        } catch (InterruptedException e) { 
  35.         e.printStackTrace(); 
  36.        } 
  37.       } 
  38.      } 
  39.  
  40.      // put item to buffer.      
  41.      synchronized (mutex) { 
  42.       buffer = item; 
  43.       System.out.println("[producer] put " + item + " to buffer."); 
  44.      } 
  45.  
  46.      // notify consumers. 
  47.      synchronized (condConsumer) { 
  48.       condConsumer.notify(); 
  49.      } 
  50.     } 
  51.    } 
  52.   }; 
  53.  
  54.   Thread consumer = new Thread() { 
  55.    public void run() { 
  56. //    for(int i=0; i<10; i++) { 
  57.     for( ; ; ) { 
  58.      // wait for item come. 
  59.      synchronized (condConsumer) { 
  60.       while( buffer == null ) { 
  61.        try { 
  62.         condConsumer.wait(); 
  63.        } catch (InterruptedException e) { 
  64.         e.printStackTrace(); 
  65.        } 
  66.       } 
  67.      } 
  68.  
  69.      // get item from buffer. 
  70.      String item = null
  71.      synchronized (mutex) { 
  72.       item = (String)buffer; 
  73.       buffer = null
  74.       System.out.println("  [consumer] get " + item + " from buffer."); 
  75.      } 
  76.  
  77.      // consume item. 
  78.      try { 
  79.       Thread.sleep(500); 
  80.      } catch (InterruptedException e) { 
  81.       e.printStackTrace(); 
  82.      } 
  83.      System.out.println("  [consumer] comsumed " + item); 
  84.  
  85.      // notify producers. 
  86.      synchronized (condProducer) { 
  87.       condProducer.notify(); 
  88.      } 
  89.     } 
  90.    } 
  91.   }; 
  92.  
  93.   consumer.start(); 
  94.   producer.start(); 
  95.  } 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲自拍偷拍综合 | 高清成人| 久久综合成人精品亚洲另类欧美 | 亚洲网站视频 | 精品伦精品一区二区三区视频 | 久久精品2019中文字幕 | 91九色视频国产 | 国产精品欧美一区二区三区 | 久久久日本 | 2023国产精品久久久精品双 | 欧美国产在线观看 | 美女毛片 | 欧美精品一区在线 | 欧美日韩中文在线观看 | 亚洲国产精品久久久久婷婷老年 | 精品欧美乱码久久久久久 | 成人精品一区 | 欧美日韩国产精品 | 精品无人乱码一区二区三区 | 在线视频一区二区 | 中文字幕av亚洲精品一部二部 | 久久久久久天堂 | 中文字幕在线观看免费 | av在线一区二区三区 | 亚洲激情一区二区三区 | 国产精品久久久久一区二区三区 | 亚洲国产精品一区二区久久 | av黄色在线| 亚洲国产成人av好男人在线观看 | 精品网站在线 | 国产精品视频久久久 | 国精品一区二区三区 | 一区二区不卡视频 | 欧美久久久久 | 国产精品不卡一区二区三区 | 精品美女久久久 | 国产精品爱久久久久久久 | 欧美日本韩国在线 | 一区二区三区免费 | 婷婷激情五月 | 亚洲一区二区三区在线播放 |