JAVA的sleep

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 }
原文地址:https://www.cnblogs.com/djcsch2001/p/2486618.html