《Java并发编程实战》课程笔记(一)

并发领域的全景图

并发编程的三个核心问题

  • 并发编程可以总结为三个核心问题分工同步互斥
    • 分工指的是如何高效地拆解任务并分配给线程
      • Java SDK 并发包里的 Executor、Fork/Join、Future 本质上都是⼀种分工方法。
      • 除此之外,并发编程领域还总结了一些设计模式,基本上都是和分工方法相关的,例如生产者-消费者、Thread-Per-Message、Worker Thread 模式等都是用来指导你如何分工的。
    • 同步指的是线程之间如何协作
      • 本质上就是一个线程执行完了一个任务,如何通知执行后续任务的线程开工。
      • Java SDK 并发包里的 Executor、Fork/Join、Future 本质上都是分工方法,但同时也能解决线程协作的问题。
      • 除此之外,Java SDK 里提供的 CountDownLatch、CyclicBarrier、Phaser、Exchanger 也都是用来解决线程协作问题的
      • 在 Java 并发编程领域,解决协作问题的核心技术是管程
    • 互斥则是保证同一时刻只允许一个线程访问共享资源
      • 所谓互斥,指的是同一时刻,只允许一个线程访问共享变量。
      • 实现互斥的核心技术就是锁,Java 语言里 synchronized、SDK 里的各种 Lock 都能解决互斥问题。
  • Fork/Join 框架就是一种分工模式,CountDownLatch 就是一种典型的同步方式,而可重入锁则是一种互斥手段。

跳出来,看全景

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22749.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rsync远程同步

rsync介绍 rsync简介 rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前…

阿里拆了中台,中台还有未来吗?

hi,我是熵减,见字如面。 近日,阿里在继年初3月份的16N的战略变革的基础上,对持续建设和运营8年的中台的调整终于落地了。 阿里对中台的这一举措,引发了外界对于中台战略是否还有意义的大量质疑和讨论。 甚至有人将中台…

ov2640子设备视频操作详细分析

ov2640子设备视频操作详细分析 文章目录 ov2640子设备视频操作详细分析ov2640_subdev_video_ops视频操作ov2640_s_stream开始流ov2640_g_fmt 获取格式ov2640_s_fmt设置格式ov2640_try_fmt尝试格式ov2640_cropcap裁剪能力ov2640_g_crop获取裁剪ov2640_enum_fmt枚举格式ov2640_g_…

六级备考26天|CET-6|仔细阅读|考研英语2023年英语(一)|8:20~10:00

text1 4/5 text2 3/5 text3 2/5 text4 3/5 12/20 目录 text 1 1. 重点词汇 2. 原文 3. 题目 text 1 1. 重点词汇 sympathise / ˈsɪmpəθaɪz / vi.同情;吊唁;共鸣 (等于 sympathize) ener…

黑客入门教程从零基础入门到精通,看完这一篇就够了

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解决…

Scrum的执行过程及产品Backlog梳理的目的、时间、内容

Scrum的迭代运行过程 产品Backlog梳理 目的: •对下个Sprint的需求进行需求细节梳理和精化,识别技术风险和依赖,完成估算和优先级排序。 时间: •本Sprint开始后第6天,2小时以内 。 内容: •理解需求…

手把手教你用Python调用彩云机器翻译API

一、引言 彩云这个小而美的机器翻译一直很低调,它让人眼前一亮的是之前我们分享的网页翻译插件,可以把外文网站翻译成英中对照的样式,便于我们学习。之前我们也写过文章介绍过: PythonFan:如何用Google翻译英文网页成…

PyTorch RNN的原理及其手写复现。

PyTorch RNN的原理及其手写复现。 0、前言代码实现记忆单元(考虑过去的信息)分类包括:1.RNN 2.GRU 3.LSTM模型类别:1.单向循环(左到右) 2.双向循环(考虑未来信息) 3.多层单向或双向循环优缺点应用场景具体公式 0、前言 先给出代码…

单位、家庭建筑物电气、电子设备防雷举措

前 言 在现实的学习、工作、生活中,有时会面对自然灾害、重特大事故、环境公害及人为破坏等突发事件,为了控制事故的发展,就不得不需要事先制定应急预案。那要怎么制定科学的应急预案呢﹖下面是小编为大家整理的单位、住宅建筑物、电子电气防…

如何搭建一个高效、可靠的积分商城系统?

互联网购物的普及,积分商城系统已经成为商家和消费者之间互动的一种常见方式。它不仅可以帮助商家增加品牌影响力,还可以提高顾客体验,从而增加销售额。下面就如何搭建一个高效、可靠的积分商城系统作一些简单介绍。 第一步:确定需…

DHTMLX Suite JS PRO 8.1.1 Crack

适用于现代 Web 应用程序的强大 JavaScript 小部件库 - DHTMLX 套件 用于创建现代用户界面的轻量级、快速且通用的 JavaScript/HTML5 UI 小部件库。 DHTMLX Suite 有助于推进 Web 开发和构建具有丰富功能的数据密集型应用程序。 DHTMLX Suite 是一个 UI 小部件库,用…

Spring Boot中使用Spring Batch处理批量任务

Spring Boot中使用Spring Batch处理批量任务 Spring Batch是Spring框架的一个模块,它提供了一组API和工具,用于处理批量任务。在本文中,我们将会介绍如何在Spring Boot中使用Spring Batch来处理批量任务。我们将会使用一个简单的示例来说明如…

Install Prometheus Monitoring On Kubernetes Cluster

目录 Node & Software & Docker Images Lists ​Prometheus introduction Download Kubernetes Prometheus Manifest Files Install Prometheus Monitoring Kubernetes Create a Namespace Create a Cluster Role And Binding It Create a Config Map Create…

二、CNNs网络架构-卷积分离网络架构

《A review of convolutional neural network architectures and their optimizations》论文指出AlexNet的优异性能证明了可以通过增加网络深度提高网络性能。随着网络层数的不断增加,不断增加的计算负担和不显著的性能提升使得更先进的网络架构成为另一个主要的研究…

搭建监控日志系统

在微服务或者集群架构中,一次请求的调用会跨多个服务(web,mysql,feign等)、多个模块(用户模块,商品模块等)、多个容器(用户模块可能有多个实例),这…

Linux命令(21)之usermod

Linux命令之usermod 1.usermod介绍 usermod命令用来更改/etc/passwd或/etc/shadow文件下用户属性,包括但不限于shell类型、用户id,用户gid、家目录、锁定及解锁用户等等。 2.usermod用法 usermod [参数] [用户名] usermod常用参数 参数说明-u修改UID…

Restful接口开发与测试—接口测试

开发完接口,接下来我们需要对我们开发的接口进行测试。接口测试的方法比较多,使用接口工具或者Python来测试都可以,工具方面比如之前我们学习过的Postman或者Jmeter ,Python脚本测试可以使用Requests unittest来测试。 测试思路…

四维轻云平台常见问题及解决方法

1、在地图中看不见加载的点云或倾斜摄影模型数据? 若点云或模型数据加载后,在地图中看不见,可能是地形的高度高于倾斜模型的高度,导致数据漂浮在空中或者在地形以下,可通过增加数据的移动值Y来调整点云或者模型数据的…

支付宝SDK接口调试- cpolar内网穿透工具实现公网地址调试(1)

文章目录 1.测试环境2.本地配置3. 内网穿透3.1 下载安装cpolar内网穿透3.2 创建隧道 4. 测试公网访问5. 配置固定二级子域名5.1 保留一个二级子域名5.2 配置二级子域名 6. 使用固定二级子域名进行访问 转发自cpolar内网穿透的文章:Java支付宝沙箱环境支付&#xff0…

16款ChatGPT工具,太炸裂了,收藏!

1.ChatGPT for google 一个浏览器插件,可搭配现有的搜索引擎来使用。 最大化搜索效率,对搜索体验的提升相当离谱: 安装完插件后,在搜索引擎搜索任何问题,都能获取两份答案。 左边是谷歌抓取的全网资源,右…