李敏  
          日歷
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345
          統(tǒng)計
          • 隨筆 - 1
          • 文章 - 40
          • 評論 - 4
          • 引用 - 0

          導航

          常用鏈接

          留言簿(1)

          文章分類

          文章檔案

          相冊

          收藏夾

          它山之石

          聚賢莊

          搜索

          •  

          最新評論

           

          import java.util.*;

          class Test{
           
            public void run(){
              Queen queen=new Queen();
             
              QueenThread qt=new QueenThread(queen);
             
              new Thread(qt).start();
             
              new Thread(qt).start();
            }
           
            public static void main(String[]args){
              new Test().run();
            }
          }

          class Queen{
           private final Object objects[]=new Object[10];
           private int pushIndex=0;
           private int popIndex=0;
           
           public synchronized void push(Object object){
             if(pushIndex>=objects.length){
               System.out.println(Thread.currentThread().getName()+" queen is over,push fail!");
             }else
               objects[pushIndex++]=object;
           }
           
           public synchronized Object pop(){
             if(popIndex>=objects.length){
               System.out.println(Thread.currentThread().getName()+" queen is empty,pop fail!");
             }else{
               Object object=objects[popIndex];
           
               objects[popIndex++]=null;
              
               Thread.yield();
           
               return object;
             }
             return null;
           }
          }

          class QueenThread implements Runnable{
            private static int id=0;
            private Queen queen;
           
            public QueenThread(Queen queen){
              this.queen=queen;
            }
           
            public void run(){
              String object=null;

                for(int i=0;i<10;i++){
               
                  queen.push(Thread.currentThread().getName()+" "+id);
                 
                  id++;
               
                  try{
                   Thread.sleep(2000);
                  }catch(InterruptedException e){
                    e.printStackTrace();
                  }

                  object=(String)queen.pop();
                 
                  if(object!=null)
                  System.out.println(Thread.currentThread().getName()+" |"+object);
                }    
            }
          }

          posted on 2009-07-18 17:47 李敏 閱讀(137) 評論(0)  編輯  收藏 所屬分類: 算法
           
          Copyright © 李敏 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 得荣县| 汾阳市| 西华县| 图们市| 新闻| 张家口市| 鄂托克旗| 德保县| 日照市| 额济纳旗| 襄汾县| 司法| 钟祥市| 郓城县| 敦化市| 黑水县| 昌平区| 安福县| 高雄县| 通州市| 张家界市| 定襄县| 博爱县| 甘孜县| 都安| 通化市| 南通市| 阿城市| 民县| 全州县| 定安县| 湘乡市| 保康县| 海宁市| 隆化县| 陕西省| 名山县| 乐清市| 秦安县| 贵阳市| 金乡县|