多线程——线程安全

本文探讨了线程安全问题,包括其定义、如何避免局部变量的线程安全问题、同步原理、线程同步的优缺点、死锁、多线程的三大特性、Java内存模型以及volatile关键字的作用。还提到了线程间的通讯、wait和sleep的区别,以及停止线程的策略。
摘要由CSDN通过智能技术生成

1、什么是线程安全问题?
答:当多个线程共享同一个全局变量,对这个变量同时进行写操作时,可能会受到其他线程的干扰,这种现象叫做线程安全问题。做读操作的时候,不会产生线程安全问题
2、当多个线程共享同一个局部变量时,会发生线程安全吗?答案是,不会

3、模拟两个窗口同时卖票,也就是两个线程公用同一个全局变量y,可是这样写就出问题了哦(虽然我一开始也是这么写的,尴尬又不失礼貌的微笑)

原因如下:创建了不同的对象,每个对象有自己的变量,使用的也会是自己的变量,从而没有达到共享的目的

所以呢,应该这样写

4、使用同步的条件
   1)必须有两个及两个以上的线程,而且需要发生同步
   2)多个线程想同步,必须用同一把锁
   3)只能保证一个线程正在执行
5、同步原理:
1)有一个线程拿到锁,其他线程在cpu中已经排好队,等待拿锁的线程释放锁
2) 锁在什么时候会释放掉?程序执行完毕或者程序执行异常被释放掉
3)锁释放掉之后

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值