java中线程同步的一个问题【synchronized】
首先感谢大家能注意到这个帖子,我是一个小菜鸟,很笨,但是还算勤奋吧。
大家先看下下面的这段代码,他的作用是用2个线程来实现不重复的打印出1-100的数字。
public class nnnn implements Runnable { static int i = 1; String name; private Object lockObject; nnnn(String name, Object o) { this.name = name; this.lockObject = o; } public void run() { dd(); } public synchronized void dd() { synchronized (lockObject) { int temp = 0; while (i < 100) { if (temp == 0) { System.out.println(name + " " + i); i++; temp = 1; lockObject.notify(); } else { temp = 0; try { lockObject.wait(); } catch (Exception e) { e.printStackTrace(); } } } } } public static void main(String args[]) { Object lockObject = new Object(); Thread p1 = new Thread(new nnnn("one", lockObject)); p1.start(); Thread p2 = new Thread(new nnnn("two", lockObject)); p2.start(); } }