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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 354620815 中级黑马   /  2014-10-11 20:54  /  2293 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程为什么会出现安全问题?

11 个回复

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

基础视频11天的135集???这个,,,是那一套视频,额额。。。
回复 使用道具 举报
inception 来自手机 中级黑马 2014-10-12 00:16:39
8#
sk0806 发表于 2014-10-12 00:12
基础视频11天的135集???这个,,,是那一套视频,额额。。。

毕姥爷的
回复 使用道具 举报
多个线程在操作同一数据时,一个线程未处理完成时另一个线程获得执行权也来操作该数据,导致数据出错,这样就产生了安全问题
回复 使用道具 举报
可以说是代码执行中,cpu的随机切换导致的
回复 使用道具 举报
线程高并发安全性问题是个重点啊!
回复 使用道具 举报
简单来说  就是一个线程还没处理完,另一个线程拿到执行权开始执行  会造成数据错误  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马