java,线程同步,run()方法写到Thead里不起作用,而放到Runnable里操作正常?!

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:45:10
hi,各位,遇到一个问题.我写了个测试程序.发现如果把run()方法封装到Runnable加到Thread里运行notify()就有用,而放入Thread里就不行会锁死,麻烦请大家看下原因,谢谢!
--------------------------
import java.util.HashMap;
import java.util.Map;

public class Test{

public static void main(String[] args) {
new Test();
}
public Test() {
//Thread1 t1 = new Thread1(this,"t1");//这样构造的是正常的
//Thread1 t2 = new Thread1(this,"t2");
Thread1 t1 = new Thread1("t1");
Thread1 t2 = new Thread1("t2");
t1.start();
t2.start();
}
public class Thread1 extends Thread {
public Thread1(Runnable r,String name) {
super(r,name);
}
public Thread1(String name) {
super(name);
}
public void run() {//把这个run()拉到外面的Runnable中就是正常的
int i = 1;
Thread1 t = (Th

必须对同一对象锁才可以,我发现了.

我的毕业设计题目正是JAVA线程。我是真想帮你看一下代码啊,但是这种没有缩进和代码让人看的实在是头发大啊。。。
麻烦能不能重粘一下。代码也是要讲究美学的。