A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© laiminghui 高级黑马   /  2013-12-10 11:36  /  1348 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 laiminghui 于 2013-12-10 15:21 编辑

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


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


  关于线程安全的知识模糊了....................................:)

3 个回复

倒序浏览
线程安全:就是当一个程序对一个线程或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问。这样做才算安全。其中涉及到的锁;sychronized,可以修饰某一段代码也可以修饰一个方法,总之要保证其唯一性。
  

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

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

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

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马