当前位置: 首页 > news >正文

离线网站制作网站建设厃金手指谷哥十四

离线网站制作,网站建设厃金手指谷哥十四,网页设计与网站建设实训报告,网页制作培训的课程目录 一、什么是线程安全问题 二、产生线程安全问题的原因 三、解决线程安全问题的方法 3.1 join()等待 3.2 synchronized加锁 3.3 wait()和notify() 3.4 volatile关键字 一、什么是线程安全问题 在操作系统中,线程的调度是随机的(抢占式执行&#xff0…

目录

一、什么是线程安全问题

二、产生线程安全问题的原因

三、解决线程安全问题的方法

3.1 join()等待

3.2 synchronized加锁

3.3 wait()和notify()

3.4 volatile关键字


一、什么是线程安全问题

在操作系统中,线程的调度是随机的(抢占式执行),由于这种随机性就会导致线程在执行的过程中由于执行顺序问题引发bug,这个bug就是线程的安全问题。所以也说:线程安全问题本质上就是由于线程的执行顺序不确定产生的。

二、产生线程安全问题的原因

产生线程安全的原因有以下几个方面:

  • 线程是抢占式执行的
  • 多个线程同时修改同一个变量
  • 修改操作不是原子的
  • 内存可见性问题
  • 指令重排序

三、解决线程安全问题的方法

3.1 join()等待

join()等待方法可以在很大程度上解决线程的安全问题,因为join()等待方法是将多线程串行化执行了,必须等待某一线程执行完才能将另一个线程执行完。由于join()方法是将整体的线程串行化了,可能会降低执行的效率。

3.2 synchronized加锁

采取synchronized加锁可以保证线程的执行顺序,但是这个前提是多个线程要使用同一个锁对象,如果不是同一个锁对象加锁就是没有意义的。当使用同一对象加锁之后,如果一个线程正在执行任务,另一个线程想要执行就必须阻塞等待,只有等前一个线程执行完释放锁,另一个线程才能去执行。

由于synchronized加锁并不是将整个多线程加锁,它可以只对小部分加锁,所以不会很大程度的影响执行效率。

3.3 wait()和notify()

多线程的执行是随机的,但是某些特定的情况下也需要按照一定的顺序去执行代码,这里引入wait()和notify()来调整执行的顺序。

wait()是让程序阻塞等待,这里的前提是wait()需要拿到锁,没有锁自然不能进行阻塞等待,所以wait()的使用条件也需要在synchronized加锁的条件下才能使用。

notify()是唤醒在wait()的线程,notify()没有强制要求必须在synchronized的条件下,但是一般还是选择在synchronized的条件下使用。

wait()与notify()都必须在拿锁对象去使用。

3.4 volatile关键字

由于编译器在某些情况下会对代码进行优化,这里就会产生内存可见性的问题和指令重排序的问题,从而使得多线程产生安全问题。使用volatile关键字可以解决内存可见性问题和指令重排序的问题。

http://www.yayakq.cn/news/286657/

相关文章:

  • 企业网站登录入口官网做网站的如何开发业务
  • 微信网站开发语言怎样做淘宝客网站
  • 公司建立网站的目的太仓住房城乡建设网站
  • 学网站建设能赚钱吗八爪鱼采集新闻到wordpress
  • 上海网站建设包括哪些古镇小企业网站建设
  • 系部 网站建设方案爱做的小说网站
  • 技术支持广州骏域网站建设专家国家企业信息网官网查询系统
  • 网站做进一步优化手机上怎么审营业执照
  • a做片手机免费网站网站网页设计是什么
  • tv电视盒子企业网站模板杭州聚翔网络有限公司
  • 婚恋网站建设公司排名潍坊网站排名
  • 如何做网站稳定客户php发布wordpress接口
  • 天津河西做网站公司建设银行普卡申请网站
  • 专业网站建设工作室杭州网络推广有限公司
  • 网站建设+深圳+凡科南京小程序开发网站建设
  • html5网站建设 教程视频自己怎样建设网站首页
  • 移动官网网站建设前端框架有哪些
  • 制作网站语言wordpress注册审批
  • 高清做网站插图学会计哪个培训机构比较正规
  • 法律服务网站建设中小型网站建设流程
  • 经营范围网站开发运营重庆建设厂
  • 网站建设 每年费用濮阳推广公司
  • 网站建设常见问题及解决办法中国企业500强2022
  • 当今做那些网站能致富网站轮换图片怎么做
  • 网站降权的表现网站建设企业服务器
  • 高端网站建设公司哪家好网站推广的方法是什么
  • 做网站后有人抢注关键词装修网站建设公司
  • 南宁网站建设服务公司公司网站域名备案
  • 服务器上网站建设网站建设后如何修改
  • 网站个人备案需要什么资料数据可视化