- 本文的组织形式如下,主要会介绍到同步容器类,操作系统的并发工具,Java 开发工具包(只是简单介绍一下,后面会有源码分析)。同步工具类有哪些。 下面我们就来介绍一下 Java 并发中都涉及哪些模块,这些并发模块都是 Java 并发类库所提供的。 同步容器类 同步容器主要包括两类,一种是本来就是线程安全实现的容器,这类容器有 Vector、Hashtable、S... 本文的组织形式如下,主要会介绍到同步容器类,操作系统的并发工具,Java 开发工具包(只是简单介绍一下,后面会有源码分析)。同步工具类有哪些。 下面我们就来介绍一下 Java 并发中都涉及哪些模块,这些并发模块都是 Java 并发类库所提供的。 同步容器类 同步容器主要包括两类,一种是本来就是线程安全实现的容器,这类容器有 Vector、Hashtable、S...
- 本篇文章我们来探讨一下并发设计模型。 可以使用不同的并发模型来实现并发系统,并发模型说的是系统中的线程如何协作完成并发任务。不同的并发模型以不同的方式拆分任务,线程可以以不同的方式进行通信和协作。 并发模型和分布式系统很相似 并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式系统模型中是 进程 彼此进行通信。然而本质上,进程和线程也非... 本篇文章我们来探讨一下并发设计模型。 可以使用不同的并发模型来实现并发系统,并发模型说的是系统中的线程如何协作完成并发任务。不同的并发模型以不同的方式拆分任务,线程可以以不同的方式进行通信和协作。 并发模型和分布式系统很相似 并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式系统模型中是 进程 彼此进行通信。然而本质上,进程和线程也非...
- CountDownLatch 是多线程控制的一种工具,它被称为 门阀、 计数器或者 闭锁。这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。下面我们就来一起认识一下 CountDownLatch 我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan... CountDownLatch 是多线程控制的一种工具,它被称为 门阀、 计数器或者 闭锁。这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。下面我们就来一起认识一下 CountDownLatch 我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan...
- JVM系列之垃圾回收机制(Garbage Collect) 1、前言介绍 在前面章节的学习中,我们知道了java虚拟机的运行时数据区和类加载机制,了解了在堆内存中是有垃圾回收的,比如young区的Minor GC,Old区的Major GC,young区和old区的full GC。 对于一个内存中的对象,怎么确定它需要回收的?怎么样对它进行回收? 2、如何确定一... JVM系列之垃圾回收机制(Garbage Collect) 1、前言介绍 在前面章节的学习中,我们知道了java虚拟机的运行时数据区和类加载机制,了解了在堆内存中是有垃圾回收的,比如young区的Minor GC,Old区的Major GC,young区和old区的full GC。 对于一个内存中的对象,怎么确定它需要回收的?怎么样对它进行回收? 2、如何确定一...
- 在每一个Kubernetes节点中,运行着kubelet,负责为Pod创建销毁容器,kubelet预定义了API接口,通过GRPC从指定的位置调用特定的API进行相关操作。而这些CRI的实现者,如cri-o, containerd等,通过调用runc创建出容器。runc功能相对单一,即针对特定的配置,构建出容器运行指定进程,它不能直接用来构建镜像,kubernetes依赖的如cri-o这类CRI, 在每一个Kubernetes节点中,运行着kubelet,负责为Pod创建销毁容器,kubelet预定义了API接口,通过GRPC从指定的位置调用特定的API进行相关操作。而这些CRI的实现者,如cri-o, containerd等,通过调用runc创建出容器。runc功能相对单一,即针对特定的配置,构建出容器运行指定进程,它不能直接用来构建镜像,kubernetes依赖的如cri-o这类CRI,
- 1:volatile 保证线程可见性 当多个线程访问同一个共享资源时,线程会拷贝资源的副本到自己的工作内存。这样如果某个线程对这个资源进行写操作,其他线程不会马上知道。当对这个资源加volatile关键字,其他线程就会随时监听,更新新的值。 如下例子,不加volatile关键字,线程不会停止,加volatile关键字后会及时重新更新副本stop的值,线程停止。 pa... 1:volatile 保证线程可见性 当多个线程访问同一个共享资源时,线程会拷贝资源的副本到自己的工作内存。这样如果某个线程对这个资源进行写操作,其他线程不会马上知道。当对这个资源加volatile关键字,其他线程就会随时监听,更新新的值。 如下例子,不加volatile关键字,线程不会停止,加volatile关键字后会及时重新更新副本stop的值,线程停止。 pa...
- 建议先看我另外一篇文章:并发编程使用了 线程池 ThreadPoolExecutor 程序性能有了质的突破 开发环境 SpringBoot 2.1.10.RELEASEJDK 1.8 1:启动类添加@EnableAsync注解 package com.nobody; import org.springframework.boot.SpringApplicati... 建议先看我另外一篇文章:并发编程使用了 线程池 ThreadPoolExecutor 程序性能有了质的突破 开发环境 SpringBoot 2.1.10.RELEASEJDK 1.8 1:启动类添加@EnableAsync注解 package com.nobody; import org.springframework.boot.SpringApplicati...
- 文章目录 一、java.text.SimpleDateFormat线程不安全,抛出异常写法:线程安全写法: 二、joda-time三、java.time.format.DateTimeFormatter 一、java.text.SimpleDateFormat java.text.SimpleDateFormat 的实例对象在多线程共享使用的时... 文章目录 一、java.text.SimpleDateFormat线程不安全,抛出异常写法:线程安全写法: 二、joda-time三、java.time.format.DateTimeFormatter 一、java.text.SimpleDateFormat java.text.SimpleDateFormat 的实例对象在多线程共享使用的时...
- 前言 默认情况下,Nginx安装在/usr/local/nginx目录下,其二进制文件为/usr/local/nginx/sbin/nginx,配置文件路径为/usr/local/nginx/conf/nginx.conf。 1:默认启动 /usr/local/nginx/sbin/nginx 1 2:指定配置文件启动 /usr/local/nginx/sbin/... 前言 默认情况下,Nginx安装在/usr/local/nginx目录下,其二进制文件为/usr/local/nginx/sbin/nginx,配置文件路径为/usr/local/nginx/conf/nginx.conf。 1:默认启动 /usr/local/nginx/sbin/nginx 1 2:指定配置文件启动 /usr/local/nginx/sbin/...
- Redis 为何能支持高并发? Redis底层采用NIO中的多路IO复用的机制,对多个不同的连接(TCP)实现IO复用,很好地支持高并发,并且能实现线程安全。 Redis官方没有windows版本,只有Linux版本。 NIO在不同的操作系统上实现的方式有所不同,在Windows操作系统使用select实现轮训,而且还存在空轮训的情况,效率非常低。时间复杂度是为O... Redis 为何能支持高并发? Redis底层采用NIO中的多路IO复用的机制,对多个不同的连接(TCP)实现IO复用,很好地支持高并发,并且能实现线程安全。 Redis官方没有windows版本,只有Linux版本。 NIO在不同的操作系统上实现的方式有所不同,在Windows操作系统使用select实现轮训,而且还存在空轮训的情况,效率非常低。时间复杂度是为O...
- Android进程框架:进程通信的桥梁Binder 文章目录 千呼万唤始出来,Android系统源码分析终于来到了Binder IPC通知机制这一块,我们知道Android应用的基础是四大组件,而四大组件通信的基础就是就是Binder,可以说它是Android系统 最重要的组成部分,对于开发者而言也是最难理解的一部分。 但古人云”天下事有难易乎?为之,则难者亦易... Android进程框架:进程通信的桥梁Binder 文章目录 千呼万唤始出来,Android系统源码分析终于来到了Binder IPC通知机制这一块,我们知道Android应用的基础是四大组件,而四大组件通信的基础就是就是Binder,可以说它是Android系统 最重要的组成部分,对于开发者而言也是最难理解的一部分。 但古人云”天下事有难易乎?为之,则难者亦易...
- 1 实验题目要求 1.1 查看P231页中编程项目,里面有对银行家算法的具体要求,特别要注意实现部分。 注意命令行参数 ./a.out 10 5 7 仅是个列子,你所涉及的程序需要支持n个线程对m个资源的并发访问请求,因此需要对上面的命令行进行扩展。 1.2 在实验过程中,能够通过屏幕或者文件,保存每个客户线程申请资源的情况—申请多少;是否被分配等。(每个客户线... 1 实验题目要求 1.1 查看P231页中编程项目,里面有对银行家算法的具体要求,特别要注意实现部分。 注意命令行参数 ./a.out 10 5 7 仅是个列子,你所涉及的程序需要支持n个线程对m个资源的并发访问请求,因此需要对上面的命令行进行扩展。 1.2 在实验过程中,能够通过屏幕或者文件,保存每个客户线程申请资源的情况—申请多少;是否被分配等。(每个客户线...
- 介绍 本文以最简单生产者消费者模型,通过运行程序,观察该进程的cpu使用率,来对比使用互斥锁 和 互斥锁+条件变量的性能比较。 本例子的生产者消费者模型,1个生产者,5个消费者。 生产者线程往队列里放入数据,5个消费者线程从队列取数据,取数据前需要判断一下队列中是否有数据,这个队列是全局队列,是线程间共享的数据,所以需要使用互斥锁进行保护。即生产者在往队列里放入数据... 介绍 本文以最简单生产者消费者模型,通过运行程序,观察该进程的cpu使用率,来对比使用互斥锁 和 互斥锁+条件变量的性能比较。 本例子的生产者消费者模型,1个生产者,5个消费者。 生产者线程往队列里放入数据,5个消费者线程从队列取数据,取数据前需要判断一下队列中是否有数据,这个队列是全局队列,是线程间共享的数据,所以需要使用互斥锁进行保护。即生产者在往队列里放入数据...
- 突然发现我的图解系统缺了「死锁」的内容,这就来补下。 在面试过程中,死锁也是高频的考点,因为如果线上环境真多发生了死锁,那真的出大事了。 这次,我们就来系统地聊聊死锁的问题。 死锁的概念;模拟死锁问题的产生;利用工具排查死锁问题;避免死锁问题的发生; 死锁的概念 在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁... 突然发现我的图解系统缺了「死锁」的内容,这就来补下。 在面试过程中,死锁也是高频的考点,因为如果线上环境真多发生了死锁,那真的出大事了。 这次,我们就来系统地聊聊死锁的问题。 死锁的概念;模拟死锁问题的产生;利用工具排查死锁问题;避免死锁问题的发生; 死锁的概念 在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁...
- 01 uptime命令 通常我们发现系统变慢时,我们都会执行top或者uptime命令,来查看当前系统的负载情况,比如像下面,我执行了uptime,系统返回的了结果。 [root@lincoding ~]# uptime 08:31:49 up 27 min, 1 user, load average: 0.07, 0.04, 0.00 12 前几列的信息,... 01 uptime命令 通常我们发现系统变慢时,我们都会执行top或者uptime命令,来查看当前系统的负载情况,比如像下面,我执行了uptime,系统返回的了结果。 [root@lincoding ~]# uptime 08:31:49 up 27 min, 1 user, load average: 0.07, 0.04, 0.00 12 前几列的信息,...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考
2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本
2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签