作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我认为,所有获取值(value)的方式都是正确的,但我想问一下。 lockedList
是 ArrayList
,我只希望 1 个线程获取该值。
public T get1(int index)
{
lock.lock();
try
{
return lockedList.get(index);
}
finally
{
lock.unlock();
}
}
public T get2(int index)
{
lock.lock();
try
{
T t = lockedList.get(index);
return t;
}
finally
{
lock.unlock();
}
}
public T get3(int index)
{
lock.lock();
T t = null;
try
{
t = lockedList.get(index);
}
finally
{
lock.unlock();
}
return t;
}
我忘了补充:我知道最好的方法是使用现成的同步容器。请问我写的礼仪是否正确。
最佳答案
它是正确的,但您需要更改一件事。使用 CopyOnWriteArrayList 代替数组列表。这样您就根本不必担心同步问题。查看这篇关于此类事情的文章http://walivi.wordpress.com/2013/08/24/concurrency-in-java-a-beginners-introduction/
关于java - 获取值(value)的正确方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333345/
我是一名优秀的程序员,十分优秀!