为什么说找不到符号

灵魂重新 2013-12-16 04:09:33

本人新手,最近在学习线程,运行下面一段死锁的代码报错
OUTPUT:
Thread_1.java:40: 错误: 找不到符号
synchronized(MyLock.looka)
^
符号: 变量 looka
位置: 类 MyLock

贴Code 谢谢帮忙看看

class My_Mutex implements Runnable
{
private boolean flag;
My_Mutex(boolean flag)
{
this.flag = flag;
}
public void run()
{

if(flag)
{
synchronized(MyLock.looka)
{
System.out.println(" i get the lock_1");
synchronized(MyLock.lookb)
{
System.out.println(" i get the lock_2");
}
}
}

else
{
synchronized(MyLock.lockb)
{
System.out.println(" i get the lock_2 flaxe");
synchronized(MyLock.looka)
{
System.out.println(" i get the lock_1 flase");
}
}

}
}
}

class MyLock
{
public static final Object locka = new Object();
public static final Object lcckb = new Object();
}

class Thread_1
{
public static void main(String[] args)
{
System.out.println("Hello World!");
// Single a = new Single();


My_Mutex tmp_mutex_1 = new My_Mutex(true);
My_Mutex tmp_mutex_2 = new My_Mutex(false);
Thread t1 = new Thread(tmp_mutex_1);
Thread t2 = new Thread(tmp_mutex_2);
t1.start();
t2.start();
}
}
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2013-12-16
  • 打赏
  • 举报
回复
你变量调用错了 。MyLock 里面只有 locka 和lcckb 。 你现在写的是looka 拼写错了。
ghostkngiht 2013-12-16
  • 打赏
  • 举报
回复
拼写错了 locka <> looka lcckb <> lockb lookb
灵魂重新 2013-12-16
  • 打赏
  • 举报
回复
引用 4 楼 a1294246096 的回复:
[quote=引用 3 楼 rui888 的回复:] synchronized(MyLock.looka) public static final Object locka = new Object(); public static final Object lcckb = new Object(); 你用工具啊,
请详细解释一下好吗,我是用Javac 编译的?菜鸟很多不懂》——《[/quote] 哦我知道了 谢谢提醒哇,哎,仔细很重要哇
灵魂重新 2013-12-16
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
synchronized(MyLock.looka) public static final Object locka = new Object(); public static final Object lcckb = new Object(); 你用工具啊,
请详细解释一下好吗,我是用Javac 编译的?菜鸟很多不懂》——《
tony4geek 2013-12-16
  • 打赏
  • 举报
回复
synchronized(MyLock.looka) public static final Object locka = new Object(); public static final Object lcckb = new Object(); 你用工具啊,
灵魂重新 2013-12-16
  • 打赏
  • 举报
回复
引用 1 楼 rui888 的回复:
你的MyLock 里面没有 looka
不好意思,黏贴错代码了,应该是 class My_Mutex implements Runnable { private boolean flag; My_Mutex(boolean flag) { this.flag = flag; } public void run() { if(flag) { synchronized(MyLock.looka) { System.out.println(" i get the lock_1"); synchronized(MyLock.lookb) { System.out.println(" i get the lock_2"); } } } else { synchronized(MyLock.lockb) { System.out.println(" i get the lock_2 flaxe"); synchronized(MyLock.looka) { System.out.println(" i get the lock_1 flase"); } } } } } class MyLock { public static final Object locka = new Object(); public static final Object lcckb = new Object(); } class Thread_1 { public static void main(String[] args) { System.out.println("Hello World!"); // Single a = new Single(); My_Mutex tmp_mutex_1 = new My_Mutex(true); My_Mutex tmp_mutex_2 = new My_Mutex(false); Thread t1 = new Thread(tmp_mutex_1); Thread t2 = new Thread(tmp_mutex_2); t1.start(); t2.start(); } } 错误还是一样的。谢谢了 Thread_1.java:40: 错误: 找不到符号 synchronized(MyLock.looka) ^ 符号: 变量 looka 位置: 类 MyLock
tony4geek 2013-12-16
  • 打赏
  • 举报
回复
你的MyLock 里面没有 looka

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧