大家 好
我在mian中定义了一个变量
byte lock[]=new byte[0];然后在我的线程中设置的同步块
synchronized(lock){//处理块
}
但是我一运行到synchronized这儿就报nullpointerexception;
是在这儿的lock不能为空吗

解决方案 »

  1.   

    synchronized(lock) 同步块中括号里的参数类型可以为任意object对象及其子类。但是,最好不要让它是null
      

  2.   

    要在你的线程里定义lock:public class yourThread extends Thread
    private static final byte[] lock = new byte[0];
    public void run() {
    ......
    synchronized(lock){//处理块
    }
    ......}
      

  3.   


    我的lock是在主线程里面定义的,这样不行吗
      

  4.   

    lock数组的值为空吧,这样导致你的nullpointerexception;