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

Jimchan

初级黑马

  • 黑马币:17

  • 帖子:10

  • 精华:0

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

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

27 个回复

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