首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

多线程的同步有关问题

2012-01-09 
多线程的同步问题Java codepublic class Test4 {public static void main(String[] args) {computer4 c1

多线程的同步问题

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(); 

热点排行