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

Book:实战Java高并发程序设计(第二版)

实战Java高并发程序设计(第二版)

  • 为什么会有并行计算?
  • 并行计算需要回答的问题
  • 基本概念
  • 并发级别有哪些?
  • Amdahl定律和Gustafson定律
  • Java并发三特性
  • 进程和线程
  • 线程的生命周期
  • Thread类run()与start()的区别

为什么会有并行计算?

单核CPU → 摩尔定律失效 → 多核CPU → 并行计算

Donald Ervin Kunth对于多核CPU的评价:这种现象或多或少是由于硬件设计师已经无计可施了,他们将摩尔定律失效的责任推给了软件开发者

并行计算需要回答的问题

①如何保证线程安全?
②如何正确理解线程间的无序性和可见性?
③如何将串行程序改造为并行程序?

基本概念

同步和异步(synchronous&asynchronous)

并发和并行(concurrency&parallelism)

临界区(critical section)

阻塞和非阻塞(blocking&non-blocking)

死锁、饥饿和活锁(deadLock、starvation&liveLock)

并发级别有哪些?

①阻塞(blocking):synchronized和可重入锁
②无饥饿(starvation-free):公平锁
③无障碍(obstruction-free):乐观锁
④无锁(lock-free):CAS
⑤无等待(wait-free):RCU

Amdahl定律和Gustafson定律

Java并发三特性

①原子性
②有序性
③可见性 → 指令重排序 → happen-before原则

进程和线程

进程:房子
线程:房子里的人

线程的生命周期

①new
②runnable
③blocked
④waiting
⑤time-waited
⑥terminated

Thread类run()与start()的区别

相关文章:

Book:实战Java高并发程序设计(第二版)

实战Java高并发程序设计(第二版)为什么会有并行计算?并行计算需要回答的问题基本概念并发级别有哪些?Amdahl定律和Gustafson定律Java并发三特性进程和线程线程的生命周期Thread类run()与start()的区别为什么会有并行计算&#xff…...

LeetCode 831. Masking Personal Information【字符串,正则表达式】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

递增三元组

[蓝桥杯 2018 省 B] 递增三元组 题目描述 给定三个整数数组 A[A1,A2,⋯,AN]A [A_1, A_2,\cdots, A_N]A[A1​,A2​,⋯,AN​],B[B1,B2,⋯,BN]B [B_1, B_2,\cdots, B_N]B[B1​,B2​,⋯,BN​],C[C1,C2,⋯,CN]C [C_1, C_2,\cdots,C_N]C[C1​,C2​,⋯,CN​…...

java源码阅读 - TreeSet

往期文章 用最简单的话讲最明白的红黑树java源码阅读 - HashMap数据结构 - 堆与堆排序 文章目录往期文章一、介绍二、类的声明三、成员变量四、构造函数五、常用方法1. NavigableSet接口的实现2. SortedSet接口的实现六、总结一、介绍 在上期文章中,我们从源码层面…...

写毕业论文经验贴

首先说一句不要靠近word,会变得不幸。最好用latex写,不过我当时懒得下载latex了,于是后期改格式花了点时间 写论文之前 事先把所有的论文都查好并且整理好,论文第一、二章写起来就会很快; 把实验做顺溜,实…...

2.7 进程退出、孤儿进程、僵尸进程+2.8 wait函数+2.9 waitpid函数

1.进程退出 子进程退出时&#xff1a;父进程帮助子进程回收内核区的资源 exit.c /*#include <stdlib.h>void exit(int status);#include <unistd.h>void _exit(int status);status参数&#xff1a;是进程退出时的一个状态信息。父进程回收子进程资源的时候可以获取…...

【新2023Q2模拟题JAVA】华为OD机试 - 预订酒店

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:预订酒店 题目 放暑假了,橡…...

一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?

前言 1/我是如何学习黑客和渗透&#xff1f; 我是如何学习黑客和渗透测试的&#xff0c;在这里&#xff0c;我就把我的学习路线写一下&#xff0c;让新手和小白们不再迷茫&#xff0c;少走弯路&#xff0c;拒绝时间上的浪费&#xff01; 2/学习常见渗透工具的使用 注意&…...

刷完这60个标准库模块,成为Python骨灰级玩家

python强大&#xff0c;主要是因为包多&#xff0c;且不说第三方包&#xff0c;单是标准库就已让人望而生畏。 如果从第一篇整理标准库的博客算起&#xff0c;如今已有三个年头。在整理标准库的过程中&#xff0c;查阅了大量资料和官方文档&#xff0c;很多中文资料都有一个共…...

EasyExcel的简单使用(easyExcel和poi)

EasyExcel的简单使用 前言 Excel读 1.实体类 2.读监听器与测试类 3.输出结果 Excel写 1.实体类 2.写入Excel的测试类 3.输出结果 填充Excel 1.Excel模板 2.测试类 3.输出结果 前言 EasyExcel类是一套基于Java的开源Excel解析工具类&#xff0c;相较于传统的框架如Apache poi、…...

命名空间 namespace

一、命名空间的定义 定义命名空间&#xff0c;使用namespace关键字&#xff0c;后面跟命名空间的名字&#xff0c;然后接一对花括号{ } 即可&#xff0c;{ }中即为命名空间的成员。 1.一般定义 namespace test {int a 10;int b 100;int ADD(int x, int y){return x y;} }…...

我能“C”——初阶指针(上)

目录 1.什么是指针&#xff1f; 2. 指针和指针类型 3.野指针 3.1野指针的成因 3.2 如何规避野指针 1.什么是指针&#xff1f; 指针理解的2个要点&#xff1a; 1. 指针是内存中一个最小单元的编号&#xff0c;也就是地址 2. 平时口语中说的指针&#xff0c;通常指的是指针…...

Android高级工程师工资为何让人艳羡不已

很多人都想有一个月入过万的梦想&#xff0c;为了实现这个梦想&#xff0c;很多人都付出了一定的努力&#xff0c;但除了付出&#xff0c;选择一个好的行业的也是非常重要的&#xff0c;就眼下而言&#xff0c;最为多金的职业莫过于Android高级工程师&#xff0c;为什么Android…...

什么猫猫最受欢迎?Python采集猫咪交易数据

前言 在日常生活中&#xff0c;我们看到可爱的猫咪表情包&#xff0c;总是会忍不住收藏 认识的一些朋友也养了猫&#xff0c;比如橘猫、英短、加菲猫之类的 看他们发朋友圈撸猫&#xff0c;老羡慕了&#xff0c;猫咪真的太可爱啦。 你是不是也动过养猫猫的小心思呢~反正我是动…...

使用Nextcloud搭建私人云盘,并内网穿透实现公网远程访问

文章目录摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名摘要 Nextcloud,它是ownCloud的一个分支,是一个文件…...

行业盛会|2023中国(东莞)国际测量控制及仪器仪表展览会

时间&#xff1a;2023年11月16-18日 地点&#xff1a;广东现代国际展览中心 ◆展会背景background&#xff1a; 众所周知,当今世界已经进入信息时代&#xff0c;信息技术成为推动科学技术高速发展的关键技术。…...

redis集群 服务器重启测试

redis集群 服务器重启测试1、集群规划&#xff1a;2台服务器 每台服务器运行3个redis实例2、重启2台服务器后redis实例没有自动重启最后一对主从节点比较 重启实例后和之前的主从分配3、再次重启2台服务器4、主从同步测试1、集群规划&#xff1a;2台服务器 每台服务器运行3个re…...

Diffusion的unet中用到的AttentionBlock详解

AttentionBlocktorch.splittorch中的permute的用法torch.transpose()view()torch.bmmsoftmax(x, dim-1)Diffusion的unet中用到的AttentionBlock详解class AttentionBlock(nn.Module):__doc__ r"""Applies QKV self-attention with a residual connection.Input…...

ElasticSearch索引文档写入和近实时搜索

一、基本概念 1.Segments In Lucene 众所周知&#xff0c;ElasticSearch存储的基本单元Shard&#xff0c;ES中一个Index可能分为多个Shard&#xff0c;事实上每个Shard都是一个Lucence的Index&#xff0c;并且每个Lucene Index由多个Segment组成&#xff0c;每个Segment事实上…...

【C语言蓝桥杯每日一题】——等差数列

【C语言蓝桥杯每日一题】——等差数列&#x1f60e;前言&#x1f64c;等差数列&#x1f64c;解题思路分析&#xff1a;&#x1f60d;解题源代码分享&#xff1a;&#x1f60d;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...