java重拍 https://www.zhihu.com/question/34387716/answer/76029594
来源:互联网 发布:linux如何拷贝文件夹 编辑:程序博客网 时间:2024/03/29 00:49
正好在看这方面的,我的历届回答一下。
保证其线程安全!
1、程序次序规则。在一个线程内,书写在前面的代码先行发生于后面的。确切地说应该是,按照程序的控制流顺序,因为存在一些分支结构。
2、Volatile变量规则。对一个volatile修饰的变量,对他的写操作先行发生于读操作。
3、线程启动规则。Thread对象的start()方法先行发生于此线程的每一个动作。
4、线程终止规则。线程的所有操作都先行发生于对此线程的终止检测。
5、线程中断规则。对线程interrupt()方法的调用先行发生于被中断线程的代码所检测到的中断事件。
6、对象终止规则。一个对象的初始化完成(构造函数之行结束)先行发生于发的finilize()方法的开始。
7、传递性。A先行发生B,B先行发生C,那么,A先行发生C。
8、管程锁定规则。一个unlock操作先行发生于后面对同一个锁的lock操作。
除了这几种情况就有可能重排序
保证其线程安全!
1、程序次序规则。在一个线程内,书写在前面的代码先行发生于后面的。确切地说应该是,按照程序的控制流顺序,因为存在一些分支结构。
2、Volatile变量规则。对一个volatile修饰的变量,对他的写操作先行发生于读操作。
3、线程启动规则。Thread对象的start()方法先行发生于此线程的每一个动作。
4、线程终止规则。线程的所有操作都先行发生于对此线程的终止检测。
5、线程中断规则。对线程interrupt()方法的调用先行发生于被中断线程的代码所检测到的中断事件。
6、对象终止规则。一个对象的初始化完成(构造函数之行结束)先行发生于发的finilize()方法的开始。
7、传递性。A先行发生B,B先行发生C,那么,A先行发生C。
8、管程锁定规则。一个unlock操作先行发生于后面对同一个锁的lock操作。
除了这几种情况就有可能重排序
0 0
- java重拍 https://www.zhihu.com/question/34387716/answer/76029594
- https://www.zhihu.com/question/25427490/answer/30834017
- https://www.zhihu.com/question/26417244
- https://www.zhihu.com/question/22764869
- https://www.zhihu.com/question/20377285
- https://www.zhihu.com/question/19809484
- http://www.zhihu.com/question/22821783/answer/22759545
- 如何使用 ggplot2?https://www.zhihu.com/question/24779017
- 【论文待读】Gcforest https://www.zhihu.com/question/56474891
- 关于比特币 https://www.zhihu.com/question/22076666
- C++通过基类指针delete派生类数组,析构函数是虚函数,程序为什么会崩溃? https://www.zhihu.com/question/30838092/answer/49623765
- http://www.zhihu.com/question/19935889
- http://www.zhihu.com/question/19630646
- http://www.zhihu.com/question/20790576
- 同步阻塞,同步非阻塞,异步阻塞,异步非阻塞 https://www.zhihu.com/question/19732473
- 【Python】Pyhton中函数的下划线命名规则www.zhihu.com/question/19754941
- malloc 能申请多大的空间 http://www.zhihu.com/question/20836462
- 为什么指向的是最后一个节点的下一个节点 http://www.zhihu.com/question/20638791
- 【Codeforces Round 340 (Div 2)A】【水题】Elephant
- Ubuntu 12.04 硬盘安装
- visualSVN server库迁移
- LeetCode OJ 1. Two Sum
- Database Replay wrc命令报错ORA-15552: workload replay client cannot login to database server
- java重拍 https://www.zhihu.com/question/34387716/answer/76029594
- 【Codeforces Round 340 (Div 2)B】【简单题】Chocolate 巧克力划分方案数 每段恰有一个坚果
- 大型网站架构系列:负载均衡详解(2)
- 再谈OpenCV中查询表lookup table的LUT函数
- 【Codeforces Round 340 (Div 2)C】【暴力排序枚举】Watering Flowers 2个灌溉器灌溉所有点最小的rr+RR
- ubuntu安装python
- 【Codeforces Round 340 (Div 2)D】【讨论题】Polyline 三点用最少数量连续不分叉线段连接
- vfork Function
- [HNOI 2003] 消防局的设立