1java 程序中怎么保证多线程的运行安全?
线程安全在三个方面体现:
原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作(atomic,synchronized)
可见性:一个线程对主内存的修改可以及时地被其他线程看到(synchronized,volatile)
有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序(happens-before 原则)
1java 程序中怎么保证多线程的运行安全?
线程安全在三个方面体现:
原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作(atomic,synchronized)
可见性:一个线程对主内存的修改可以及时地被其他线程看到(synchronized,volatile)
有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序(happens-before 原则)