你的MyLock  里面没有 looka 

解决方案 »

  1.   

    不好意思,黏贴错代码了,应该是
    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
      

  2.   

    synchronized(MyLock.looka)public static final Object locka = new Object();
    public static final Object lcckb = new Object();
    你用工具啊,
      

  3.   

    请详细解释一下好吗,我是用Javac 编译的?菜鸟很多不懂》——《
      

  4.   

    请详细解释一下好吗,我是用Javac 编译的?菜鸟很多不懂》——《
    哦我知道了  谢谢提醒哇,哎,仔细很重要哇
      

  5.   

    拼写错了
    locka <> looka
    lcckb <> lockb lookb
      

  6.   

    你变量调用错了 。MyLock 里面只有 locka 和lcckb  。
    你现在写的是looka  拼写错了。