黑马程序员技术交流社区
标题: 线程问题 [打印本页]
作者: ╄Tracyぺ 时间: 2014-5-14 18:21
标题: 线程问题
本帖最后由 ╄Tracyぺ 于 2014-5-23 09:50 编辑
能否解答一下线程的同步与非同步问题
作者: lvc 时间: 2014-5-15 02:28
本帖最后由 lvc 于 2014-5-15 02:30 编辑
线程同步是为了解决多线程共享数据出现的安全问题:
当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程 参与进来执行。导致共享数据错误。
解决办法:
就是对多条超做共享数据的语句只能让一个线程执行完,在执行过程中,其他线程不可以参与执行。
作者: 李小新H 时间: 2014-5-15 07:35
能否问的更细致一点?
作者: jsjchenlong 时间: 2014-5-15 08:07
多线程不同步的产生原因如下:
1,多个线程在操作共享数据。
2,有多条语句对共享数据进行运算。
原因:这多条语句,在某一个时刻被一个线程执行时,还没有执行完,就被其他线程执行了。
解决多线程同步安全问题的原理如下:
只要将操作共享数据的语句在某一时段让一个线程执行完,在执行过程中,其他线程不能进来执行就可以解决这个问题。
如何进行多句操作共享数据代码的封装呢?
java中提供了一个解决方式:就是同步代码块。
格式:
synchronized(对象) { // 任意对象都可以。这个对象就是锁。
需要被同步的代码;
}
作者: 喜爱 时间: 2014-5-18 14:53
线程同步与不同步
1、是访问相同资源,会产生资源不同步问题。
2、需要是多行代码,才会产生资源不同步问题。
3、解决资源不同问题,就是当不同线程访问同一段代码的时候,给该代码添加锁,即可。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |