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

Jimchan

初级黑马

  • 黑马币:17

  • 帖子:10

  • 精华:0

© Jimchan 初级黑马   /  2016-9-5 10:45  /  2335 人查看  /  27 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么会产生线程不安全问题?怎么解决

27 个回复

倒序浏览
求大神指点
回复 使用道具 举报
不同步,就好比你蹲坑,拉到一半被别人强行拉出来。同步,你拉完别人再进去
回复 使用道具 举报
多个线程同时开启,比如你的一个线程正在运行,CPU突然切走了,去运行另外一个线程去了,可是你第一个还没运行完,这不肯定就会出现问题!这就是不安全
回复 使用道具 举报
我也很懵逼啊
回复 使用道具 举报
线程不安全主要是线程不同步所导致的!要解决这个问题,得在被开启多线程执行的代码中加锁,保证一个线程执行完后,另外一个线程再执行.
回复 使用道具 举报
多线程具有随机性和延迟性,要同通过锁将多条语句操作的共享数据部分的代码进行同步
回复 使用道具 举报
老师上课有总结的:
1.多线程
2.并发
3.共享同一资源
回复 使用道具 举报
系统碰到有锁的代码时,会对锁进行检查看是否被其他同步代码块锁住,如果有的话线程就会阻塞,跳到别的线程上去,当两段同步代码块都锁住一个对象又想去访问对方的锁住的对象时,就会互不相让,jvm不断的在两个线程之间跳来跳去,这就是死锁
回复 使用道具 举报
因为cpu随机分配线程啊
回复 使用道具 举报 1 0
同步同步同步
回复 使用道具 举报 1 0
同问,不是很懂
回复 使用道具 举报
多线程,如果只有一个cpu在执行的话,那么它每次只能执行一个线程,但是是随机执行的,不确定是哪条线程,有可能你正在执行的线程突然被抢了,这就会导致了各种情况发生,所以存在不安全问题.
回复 使用道具 举报
线程的随机性和延迟线,怎么解决?加把锁。
回复 使用道具 举报
感觉和学的操作系统差不多
回复 使用道具 举报
因为计算机CPU的发展,现在都是多核处理器,所以不可能让一个CPU运行,其他CPU在哪里不做事,这样就产生了多线程,产生多线程以后,各个线程之间各自做自己的事情,有可能操作到同一个源,就产生了不安全问题,解决方法就是多线程技术,加个锁
回复 使用道具 举报
程序可以写,但是好像不怎么理解
回复 使用道具 举报
我是来看答案的
回复 使用道具 举报
一个线程跑一半,cpu执行权被别的线程抢走,可能导致正在执行的程序出错,或者数据不准,比如单例设计模式中的懒汉式在多线程的情况下可能产生多个对象,这就违背了单例设计模式的初衷。同步就是保证让一个线程先跑完在让出cpu执行权,能解决多线程不安全问题。
线程安全一般都涉及到synchronized 就是一段代码同时只能有一个线程来操作 不然中间过程可能会产生不可预制的结果。
回复 使用道具 举报
来学习,老司机好多啊
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马