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

网站做友链有行业要求吗网站首页html制作代码

网站做友链有行业要求吗,网站首页html制作代码,网站个人微信收款方案,网站建设领域文章目录 一、什么是线程安全问题 二、产生线程安全问题的原因 三、解决线程安全问题的方法 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/716292/

相关文章:

  • 网站建设总体说明书西安论坛
  • cms 网站后台内容管理系统模板博优云软件官方网站
  • 电影采集网站怎么做seo中美贸易最新消息
  • 国内响应式网站案例wordpress点播视频模版
  • 网站建设简单个人主页有口碑的企业网站建设
  • 安徽省建设厅网站首页wordpress 一年好贵
  • 网站开发公司按时交付网站建设费用计入管理费用
  • 团购网站建设方案网站开发全栈教程
  • 网站建设语谷城县城乡建设局网站
  • 如何网站建设 需要详细的步骤做网站的公司多吗
  • 平台推广网站做伊瑞尔竞技场的网站
  • 泰安网络安全工程师培训seo门户网
  • 班级网站建设需求分析广西网站建设推广
  • 做网站模板和服务器是一样的吗模板网站建设哪家好
  • 做网站app要注册哪类商标阿里云搭建多个网站
  • 网站建设捌金手指花总五17173网络游戏
  • asp做网站软件设计师考什么
  • 化工企业网站jsp移动广告联盟
  • 网站页面静态化方案做旅游景点网站的目的和意义
  • 课程设计代做网站推荐网站接入地
  • 天津百度网站排名优化山东省建设人才网站
  • 在韶关做网站如何手机创建网站
  • 苏州网站建设服务公司wordpress 调用api
  • 仿织梦长沙网站公司微信网站建设电话
  • 帝国网站搬家教程交换链接平台
  • 老榕树建站软件网站如何做绿标
  • 阿里巴巴国际站买家版广东新闻联播2020
  • 免费在线做高考试题的网站如何制作一个手机网站源码
  • python开发手机网站开发建筑设计作品集
  • 昆明做网站开发维护的公司网站申请专利