黑马程序员技术交流社区

标题: 何谓“线程安全” [打印本页]

作者: 高焕杰    时间: 2012-12-25 20:39
标题: 何谓“线程安全”
见题目!!!
作者: 何创    时间: 2012-12-25 20:52
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。  
或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。
看懂不如自己动手试试,多写写代码 实验几个多线程的代码 就懂了。
作者: 郑广昌    时间: 2012-12-25 21:13
多线程运行同一个代码导致运行结果不是我们要求的,就视为线程不安全。相反的,就是线程安全
作者: 李敬卫    时间: 2012-12-25 21:54
首先你得知道线程为什么会不安全,怎样才能让他安全。当多个线程开启并执行run方法的时候,他们会同时争夺CPU的执行权,可是问题也就来了,当一个线程所运行的代码还没结束时,执行权被另一个线程抢走了。由此就产生了隐患,程序产生的结果有可能就不是我们想要的,这就是线程安全问题。为了让线程安全,解决办法:同步代码块或同步函数。以上就是我对线程安全的全部理解。家里没网,只能用手机上网。回答一个问题不容易啊!希望版主能加分




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