`
fp1203
  • 浏览: 3282 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
一直以来,都对原子操作和并发安全都有些误解,认为一个操作不是原子的,那它就不是并发安全的,这样以来,就迟疑了,这么说来: C语言一个简单的赋值语句也不是原子的咯? a = b是否是原子操作? 见代码如下: int main() { int a = 0; int b = 2; a = b; } 编译这段代码: g++ -c -g -Wa,-adlhn Assign.c > Assign.asm 可以发现(只显示a = b部分asm码): movl -8(%ebp), %eax movl %eax, -4(%ebp) 大家看,它由两条汇编指令 ...
经过JDK1.6对synchronized的进一步优化,通常情况下,synchronized与lock & unlock 效率差别不大,如果大家做一下简单实验应该不容易得出,见http://www.blogjava.net/killme2008/archive/2007/09/14/145195.html中的实验,但在做下面这个实验时,发现两者效率上还是有些区别的。     这是一个最简单的阻塞队列的实现,分别采用synchronized和ReentrantLock来实现,代码如下: public interface Queue<E> { public void ...
Global site tag (gtag.js) - Google Analytics