JAVA 线程同步
public class MyThread implements Runnable { int i = 0; @Override public void run() { while (true) { synchronized (this) { // TODO Auto-generated method stub System.out.println(Thread.currentThread().getName() + " " + i); if (i++ > 50) { break; } Thread.yield(); try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub MyThread myThread = new MyThread(); Thread thread1 = new Thread(myThread); thread1.setPriority(Thread.MAX_PRIORITY); thread1.setName("thread1"); thread1.start(); Thread thread2 = new Thread(myThread); thread2.setPriority(Thread.MAX_PRIORITY); thread2.setName("thread2"); thread2.start(); } }
运行结果
thread1 0 thread1 1 thread1 2 thread1 3 thread1 4 thread1 5 thread1 6 thread1 7 thread2 8 thread2 9 thread1 10 thread1 11 thread1 12