安全问题产生的原因:
1,多个线程在操作共享数据。
2,操作共享数据的代码有多条。
一个线程在执行多条操作共享数据的过程中,其他线程参数与了运算,这时就会发生安全问题。
想要分析是否安全问题:
依据:线程任务中有没有共享数据,该数据是否被多条语句操作啊。
解决方案:只要保证一个线程在执行多条操作共享数据的语句时,其他线程不能参与运算即可。
当该线程都执行完后,其他线程才可以执行这些语句。
代码表现:java中给我们提供具体的解决语句。
那就是同步代码块。
格式:
synchronized(对象)//对象可以是任意的对象。
{
需要被同步的语句。
}
|
|