2个线程,一个线程先写,然后另外一个线程读,以此循环。
static int i = 8; static Object obj = new Object(); public static void main(String[] args) throws InterruptedException { Thread read = new Thread(new Runnable() { @Override public void run() { for (int j = 0; j < 100; j++) { synchronized (obj) { System.out.println("read:" + i); obj.notify(); try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }); Thread write = new Thread(new Runnable() { @Override public void run() { for (int j = 0; j < 100; j++) { synchronized (obj) { i = j; System.out.println("write:" + i); obj.notify(); try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }); write.setName("write"); read.setName("read"); write.start(); Thread.sleep(10); read.start(); }