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

          導(dǎo)航

          常用鏈接

          留言簿(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: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 阆中市| 织金县| 南漳县| 普宁市| 甘孜县| 东阿县| 星子县| 贵南县| 拜泉县| 隆安县| 甘孜| 盱眙县| 比如县| 原平市| 伊金霍洛旗| 陆河县| 全州县| 东阿县| 六安市| 大石桥市| 库伦旗| 朔州市| 易门县| 长沙县| 福鼎市| 古交市| 昭觉县| 玉环县| 香港| 宁南县| 南阳市| 阳曲县| 惠来县| 财经| 吉水县| 阆中市| 鄯善县| 综艺| 鸡泽县| 辽源市| 景德镇市|