当前位置: 代码迷 >> J2SE >> 多线程的同步有关问题
  详细解决方案

多线程的同步有关问题

热度:128   发布时间:2016-04-24 12:42:57.0
多线程的同步问题
Java code
public class Test4 {    public static void main(String[] args) {        computer4 c1 = new computer4('a');        computer4 c2 = new computer4('b');        c1.start();        c2.start();    }}class computer4 extends Thread {    char ch;    Object obj = new Object();    computer4(char ch) {        this.ch = ch;    }    public void print(char ch) {        for (int i = 0; i < 10; i++) {            System.out.print(ch);        }    }    public void run() {        synchronized (obj) {            print(this.ch);            System.out.println();        }    }}


代码如上,不知道我写的有没有问题。我的意图是打印如
“aaaaaaaaa
  bbbbbbbbb”或
“bbbbbbbbb
  aaaaaaaaa”
但是,多次输出总有其他情况产生,不知道这个是什么原因?

------解决方案--------------------
你在 你的computer4 run方法里,
这样写同步块:
Java code
synchronized (computer4.class)
------解决方案--------------------
Java code
Object obj = new Object();
  相关解决方案