黑马程序员技术交流社区
标题:
死锁
[打印本页]
作者:
邵阳
时间:
2012-7-10 18:46
标题:
死锁
本帖最后由 邵阳 于 2012-7-10 20:17 编辑
按老师写了个死锁,老是编译失败
/*死锁*/
class Demo
{
private boolean p;
Demo(boolean p)
{
this.p=p;
}
public void run()
{
if (p)
{
synchronized(myClock.x1)
{
System.out.println("if...... x1");
synchronized(myClock.x2)
{
System.out.println("if...... x2");
}
}
}
else
{
synchronized(myClock.x2)
{
System.out.println("else...... x1");
synchronized(myClock.x1)
{
System.out.println("else...... x2");
}
}
}
}
}
class myClock
{
static Object x1=new Object();
static Object x2=new Object();
}
class Test
{
public static void main(String[]args)
{
Thread d1=new Thread(new Demo (true));
Thread d2=new Thread(new Demo (false));
d1.start();
d2.start();
}
}
求大神指教
D:\java\zuoye\xiancheng>javac d.java
d.java:219: 错误: 对于Thread(Demo), 找不到合适的构造器
Thread d1=new Thread(new Demo (true));
^
构造器 Thread.Thread(ThreadGroup,Runnable,String,long)不适
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(ThreadGroup,Runnable,String)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(Runnable,String)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(ThreadGroup,String)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(String)不适用
(无法通过方法调用转换将实际参数Demo转换为String)
构造器 Thread.Thread(ThreadGroup,Runnable)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(Runnable)不适用
(无法通过方法调用转换将实际参数Demo转换为Runnable)
构造器 Thread.Thread()不适用
(实际参数列表和形式参数列表长度不同)
d.java:220: 错误: 对于Thread(Demo), 找不到合适的构造器
Thread d2=new Thread(new Demo (false));
^
构造器 Thread.Thread(ThreadGroup,Runnable,String,long)不适
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(ThreadGroup,Runnable,String)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(Runnable,String)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(ThreadGroup,String)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(String)不适用
(无法通过方法调用转换将实际参数Demo转换为String)
构造器 Thread.Thread(ThreadGroup,Runnable)不适用
(实际参数列表和形式参数列表长度不同)
构造器 Thread.Thread(Runnable)不适用
(无法通过方法调用转换将实际参数Demo转换为Runnable)
构造器 Thread.Thread()不适用
(实际参数列表和形式参数列表长度不同)
2 个错误
作者:
彭盼
时间:
2012-7-10 18:57
标题:
:
本帖最后由 彭盼 于 2012-7-10 19:01 编辑
很简单啊,class Demo后面你没有实现Runable接口啊
建立线程的两种方式一种继承Thread类,复写run(),然后直接
调用类的对象的start()
另一种让目标类实现Runnable接口,再将目标类的实例对象当作
参数传入Thread的构造函数,调用start()开启线程
顺便复习下,呵呵
作者:
李伟
时间:
2012-7-10 19:00
class Demo implements Runnable
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2