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

营销网站四大要素谷歌做自己的网站

营销网站四大要素,谷歌做自己的网站,网站开发设计定制,外汇自动跟单网站开发《Java并发编程的艺术》书籍 在并发编程中存在两个问题: 线程之间如何通信线程之间如何同步 一、JMM抽象结构 用来控制多线程之间的通信,可见性、有序性、原子性。 线程A如何与线程B进行通信 线程之间并没有直接通信通道,如图所示要想…

《Java并发编程的艺术》书籍

在并发编程中存在两个问题:

  1. 线程之间如何通信
  2. 线程之间如何同步

一、JMM抽象结构

用来控制多线程之间的通信,可见性、有序性、原子性。
在这里插入图片描述

线程A如何与线程B进行通信

线程之间并没有直接通信通道,如图所示要想实现通信需经历:
1)将本地内存A中更新的变量刷新到主内存当中
2)线程B到主内存读取

二、重排序

为什么会进行重排序?简单来说就是提高性能。
有三种类型
1)编译器优化重排序
2)指令级并行的重排序
3)内存系统的重排序

1、重排序带来的问题

在多线程当中重排序可能会改变程序的执行结果,通过在生成指令序列时,插入特定类型的内存屏障指令来禁止重排序。

1.1内存屏障类型

在这里插入图片描述

1.2happens-before

在Java并发编程艺术这本书中写到,happens-before的概念是用来阐述操作之间的内存可见性。
在这里插入图片描述

2、数据依赖关系与控制依赖关系

2.1 什么是数据依赖关系

如果两个操作访问同一个变量,这两个操作中有一个为写操作,此时这两个操作就存在数据依赖关系。有三种类型,写后读、写后写、读后写。在单线程中执行时重排序会遵守数据依赖,编译器和处理器不会改变存在数据依赖关系的两个操作之间的执行顺序。

2.2 什么是控制依赖关系

在判断语句当中例如下列伪代码中,操作1和操作2之间存在着数据控制依赖关系。当存在控制依赖关系时,会影响指令序列执行的并行度。因此编译器和处理器会采用猜测执行来克服控制相关性对并行度的影响。具体来说,处理器可以提取读取和计算i*i,然后临时保存到一个名为重排序缓冲(Record Buffer,ROB)的硬件缓存中,当条件判断为真是,写入到a中。

if(flag){//操作1
a = i*i;//操作2
}
http://www.dtcms.com/a/398763.html

相关文章:

  • 【OpenGL】LearnOpenGL学习笔记27 - HDR、Bloom
  • MySQL 学习笔记 (Part.1)
  • 《代码大全》笔记
  • 【低代码】阿里Formily通用设计工具Designable学习记录
  • 网站建设客户wordpress如何看网页地址
  • php做的网站如何发布新类型网站
  • mq是如何实现的
  • 【区间贪心】P3661 [USACO17FEB] Why Did the Cow Cross the Road I S|普及+
  • AIGC实战——BicycleGAN详解与实现
  • 基于Element Plus的Vue3远程搜索多选组件实现与优化
  • 网站只做静态页面安全受到影响南昌旅游集团网站建设
  • pom.xml 不在根目录,idea无法识别项目处理方案
  • 网站开发所需硬件昆明微网站搭建
  • 【第25话:路径规划】自动驾驶路径规划概念与理论介绍
  • QT多窗口跳转
  • 栈(Stack)
  • 整体设计 逻辑全链 之8 受控的自然语言-字面拼凑:正则表达式 之2
  • 攻防世界-Web-simple_php
  • 【Linux我做主】进程程序替换和exec函数族
  • 清华最新发布 | 大型推理模型的强化学习综述
  • C++异常处理的根本缺陷:隐式传播的性能陷阱与控制流断裂
  • 【东枫】USRP X310 母版 PCB
  • 山东锦华建设集团有限公司网站嘉瑞建设有限公司网站
  • 食品品牌网站策划美容行业培训网站建设
  • Amazon Timestream新用户实时分析:从零到上手完整指南
  • 淘宝联盟个人网站怎么做电商平台入驻
  • 在 Oracle SQL 中实现 `IF-ELSE` 逻辑 SQL 错误 [12704] [72000]: ORA-12704: 字符集不匹配
  • 勒索软件专攻数据库弱点:Oracle 服务器安全防线告急
  • 常用的表空间维护语句
  • MySQL笔记---数据库基础