黑马程序员技术交流社区

标题: 关于线程安全的问题... ... [打印本页]

作者: laiminghui    时间: 2013-12-10 11:36
标题: 关于线程安全的问题... ...
本帖最后由 laiminghui 于 2013-12-10 15:21 编辑

线程什么情况下安全   ???
           线程什么情况下是不安全的???


                 哪位大侠出来救救我???


  关于线程安全的知识模糊了....................................:)
作者: 史超    时间: 2013-12-10 12:35
线程安全:就是当一个程序对一个线程或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问。这样做才算安全。其中涉及到的锁;sychronized,可以修饰某一段代码也可以修饰一个方法,总之要保证其唯一性。
  

作者: 衣带赞    时间: 2013-12-10 13:19
当多个线程访问到类中共有的的成员变量时,就可能存在安全问题。
只要看多个线程中的数据是否有用到了同一个变量,并且对其数据进行了操作,比如一增一取之类,就必须加上线程同步的操作。
也有特殊情况,当多个线程用到的共有成员变量且都只有一个执行语句,可以不加同步锁。不过为了安全起见,只要用到共有数据都加上同步比较好。
作者: 程洋    时间: 2013-12-13 15:41
本帖最后由 程洋 于 2013-12-13 16:29 编辑

线程的安全问题:主要是多条语句在操作同一个线程的共享数据时,一个线程只执行了部分语句,就失去了cpu的执行权而处于阻塞状态,这时其他的线程也参与进来执行这些语句,可能会导致共享数据的错误,这就造成了线程的不安全性,
解决的办法是:让同一个线程把多条语句一起执行完,再让其他线程执行;java中解决这类问题的方法是:synchronized.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2