读书人

重入锁ReentrantLock() 创建报错 咋回

发布时间: 2012-05-15 14:35:29 作者: rapoo

重入锁ReentrantLock() 创建报错 怎么回事??

Java code
import java.util.concurrent.locks.*;public class ReentrantLock  implements Runnable{    private int num = 0;    private Lock lock = new ReentrantLock();//创建重入锁对象。这里怎么报错啊???    @Override    public void run(){        lock.lock();    //打开锁        try{            for(int i = 0; i < 5; i++){                try{                    Thread.sleep(100);                }catch (InterruptedException e){                    e.printStackTrace();                }                System.out.println(Thread.currentThread().getName() + ":" + num++);            }        }finally{            lock.unlock();//释放锁        }    }    public static void main(String[] args) {        ReentrantLock run = new ReentrantLock();        Thread thread1 = new Thread(run);        Thread thread2 = new Thread(run);        thread1.start();        thread2.start();    }}


private Lock lock = new ReentrantLock(); 这句 new ReentrantLock() 为什么不能通过编译??



[解决办法]
ReentrantLock 都被你覆盖了,还能是lock吗?
改下名字
public class ReentrantLockRunnable implements Runnable{
private int num = 0;
private Lock lock = new ReentrantLock();//创建重入锁对象。这里怎么报错啊???
即使成功了,也会栈溢出。

读书人网 >J2SE开发

热点推荐