孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

JAVA的sleep方法让出CPU,给其他线程运行机会:

 1 package synsleep;
 2 public class Machine implements Runnable {
 3   private int a=1;  //共享数据
 4   public void run() {
 5     for(int i=0;i<1000;i++){
 6       synchronized(this){
 7         a+=i;
 8         try{
 9           Thread.sleep(500); //给其他线程运行的机会
10         }catch(InterruptedException e){throw new RuntimeException(e);}
11         a-=i;
12         System.out.println(Thread.currentThread().getName()+":"+a);
13       }
14     }
15   }
16 
17   public void go(){
18     for(int i=0;i<1000;i++){
19         System.out.println(Thread.currentThread().getName()+":"+i);
20         Thread.yield();
21      }
22   }
23   public static void main(String args[]) throws InterruptedException{
24     Machine machine=new Machine();
25     Thread t1=new Thread(machine);
26     Thread t2=new Thread(machine);
27     t1.start();
28     t2.start();
29     machine.go();
30   }
31 }

 

posted on 2012-05-06 21:44  孤独的猫  阅读(2139)  评论(0编辑  收藏  举报