黑马程序员技术交流社区

标题: 多线程为什么会出现安全问题? [打印本页]

作者: 354620815    时间: 2014-10-11 20:54
标题: 多线程为什么会出现安全问题?
多线程为什么会出现安全问题?

作者: Nullifier    时间: 2014-10-11 21:29
说个个人理解的简单例子吧,有个房间房间里有若干文件。规定进了这屋子就得拿文件。小张小王同时被告知屋子只有一份文件,那么他们同时进来这屋子了,小张把文件拿走了,小王就只能拿 负 的文件了。线程同步后给门上个锁,规定每次只能进去一个人,那小王进去拿了文件出来就告诉大家说,文件没了,那小张就不进去了,进去了也没有文件。
作者: 戏言丶    时间: 2014-10-11 21:34
操作共享数据造成的
作者: Quasimodo    时间: 2014-10-11 21:56
我也举个例子吧,屋子里有若干文件,两个人分别进去取,门上显示有文件还剩多少份,还剩有文件的时候才开门。小王来的时候,门上显示还剩一份,门可以开,小王进去了。可是小王在里面耽搁了一下,文件还没到手的时候小李也来了。因为小王虽然在门里但是他还没拿到文件,所以门上依然显示还有一份文件,门依然可以开。于是门里只有一份文件了,但是有两个人,那文件就不够用了。
平时当然是一个人拿了,另一个人就没份了。但是java里面不一样,1后面还有0,0后面还有-1,所以java里,两个线程都继续执行,一个获取1,一个就获取0了。  但是我们知道现实中0是没有文件的,这就跟事实相悖了,安全问题就出来了
作者: 郭.威    时间: 2014-10-11 23:00
;;;;;;;;;;;;;;;;;;;;
作者: 夕默    时间: 2014-10-11 23:50
请观看基础学习视频第11天的第135集。
作者: sk0806    时间: 2014-10-12 00:12
夕默 发表于 2014-10-11 23:50
请观看基础学习视频第11天的第135集。

基础视频11天的135集???这个,,,是那一套视频,额额。。。
作者: inception    时间: 2014-10-12 00:16
sk0806 发表于 2014-10-12 00:12
基础视频11天的135集???这个,,,是那一套视频,额额。。。

毕姥爷的
作者: 〆_、Wali    时间: 2014-10-12 09:35
多个线程在操作同一数据时,一个线程未处理完成时另一个线程获得执行权也来操作该数据,导致数据出错,这样就产生了安全问题
作者: jtshawn    时间: 2014-10-12 10:23
可以说是代码执行中,cpu的随机切换导致的
作者: 就是现在    时间: 2014-10-12 14:08
线程高并发安全性问题是个重点啊!

作者: 任献东    时间: 2014-10-12 14:36
简单来说  就是一个线程还没处理完,另一个线程拿到执行权开始执行  会造成数据错误  




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