多线程的安全问题

来源:互联网 发布:柳未来知乎 编辑:程序博客网 时间:2024/05/22 08:17

(需要同步操作共享数据的代码块)


一、产生的原因

1、线程任务中有共享数据;

2、线程任务中有多条对共享数据的操作。

一个线程在操作共享数据的过程中,其他线程参与了运算,造成了数据的错误。


二、解决思想

只要保证多条操作共享数据的代码在某一时间段,被一条线程执行,在执行期间不允许其他线程参与计算。


三、解决方式

1、用同步代码块

synchronized(对象){需要被同步的代码块}
其中的 “对象” 就是所谓的 “锁” ,就是同步机制。要保证锁的唯一性!

同步的前提:多线程在同步中必须使用同一个锁(对象)!!

2、同步函数。

在函数的返回值前面加上synchronized的关键字

同步函数使用的锁就是this对象


字节码对象表示方式: 类名.class

0 0
原创粉丝点击