
java
smart_k
这个作者很懒,什么都没留下…
展开
-
synchronized语义
1.synchronized控制的代码块标识为临界区,各个线程互斥执行代码块 2.当线程进入代码块的时候,代码块中引用的变量值从主存中重新读取;当线程退出代码块是代码块中引用的变量值被刷新到主存中...原创 2011-01-23 16:27:13 · 191 阅读 · 0 评论 -
JMM的happend-before原则
新的 JMM 非正式地定义了一个名为 happens-before 的排序,它是程序中所有操作的部分顺序,如下所示: * 线程中的每一个操作 happens-before这个线程中在程序顺序中后面出现的每一个操作 * 对监视器的解锁 happens-before同一监视器上的所有后续锁定 * 对 volatile 字段的写 happens-before同一...原创 2011-01-23 16:31:13 · 588 阅读 · 0 评论 -
Volatile 变量
[size=large]Volatile 变量[/size] Volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。Volatile 变量可用于提供线程安全,但是只能应用于非常有限的一组用例:多个变量之间或者某个变量的当前值与修改后值之间没有约束。因此,单独使用 volatile 还不足以实现计数器、...原创 2011-01-23 16:39:14 · 152 阅读 · 0 评论 -
(i * 52429) >> 19 = i / 10
原理: 52429 / 2 ^19 = 0.10000038146972656 所以(i * 52429) >> 19 = i * 0.1 注意: 2^10=1024, 103/1024=0.1005859375 2^11=2048, 205/2048=0.10009765625 2^12=4096, 410/4096=0.10009765625 2^13=8192, 8...原创 2011-06-07 12:53:31 · 401 阅读 · 0 评论