小编Gre*_*reg的帖子

list.clear()vs list = new ArrayList <Integer>();

清除ArrayList的两个选项中哪一个更好更快,为什么?

list.clear() 
Run Code Online (Sandbox Code Playgroud)

要么

list = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

碰巧我必须在随机的时间清除我的ArrayList中的所有条目,我无法知道将来会有多少新条目,可能有0或1000.哪种方法更快更好,为什么?

java arraylist

120
推荐指数
5
解决办法
14万
查看次数

线程 - 为什么锁定必须遵循try和finally

一个锁总是后跟一个try/finally块,为什么?

ReentrantReadWriteLock readWriteLockBitmap = new ReentrantReadWriteLock();
Lock read = readWriteLockBitmap.readLock();
Lock write = readWriteLockBitmap.writeLock();
int shared = 0;

public void function1(){
    read.lock();
    try{
        //reading shared int
    }
    finally{
        read.unlock();
    }
}

public void function 2(){
    write.lock();
    try{
        //modify shared int
    }
    finally{
        write.unlock();
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么有这个try/finally块而不是简单地编写代码如下:

ReentrantReadWriteLock readWriteLockBitmap = new ReentrantReadWriteLock();
Lock read = readWriteLockBitmap.readLock();
Lock write = readWriteLockBitmap.writeLock();
int shared = 0;

public void function1(){
    read.lock();
    //reading shared int
    read.unlock();
}

public void function 2(){
    write.lock();
    //modify shared int …
Run Code Online (Sandbox Code Playgroud)

java locking thread-safety

6
推荐指数
3
解决办法
3918
查看次数

标签 统计

java ×2

arraylist ×1

locking ×1

thread-safety ×1