并发编程
文章平均质量分 79
greekw
用我双手和我的思维去码出丰富的世界
展开
-
dubbo系列(一)—dubbo模块解读
RPC框架图Dubbo模块解读serialize层IO线程数cpu核数+1通讯框架协议(netty,netty4,mina和grizzly)启动:NettyServer编解码NettyCodecAdapterprivate final ChannelHandler encoder = new InternalEncoder();private final ChannelHandler decoder = new InternalDecoder();Co原创 2020-06-23 13:29:08 · 860 阅读 · 0 评论 -
并发编程系列(七)—原子类框架Atomic剖析
大家好,牧码心今天给大家推荐一篇并发编程系列(七)—原子类框架Atomic剖析的文章,希望对你有所帮助。原创 2020-05-10 14:40:09 · 383 阅读 · 0 评论 -
并发编程系列(十)—深入理解共享锁和ReentrantReadWriteLock
前言本文对Java的“共享锁”进行介绍,JUC中的共享锁有CountDownLatch, CyclicBarrier, Semaphore, ReentrantReadWriteLock等;本章会以ReentrantReadWriteLock为例对共享锁进行说明。内容包括ReadWriteLock 和 ReentrantReadWriteLock介绍ReadWriteLock 和 Reen...原创 2020-03-01 22:12:54 · 286 阅读 · 1 评论 -
并发编程系列(十二)—深入理解CyclicBarrier栅栏
前言大家好,牧码心今天给大家推荐一篇并发编程系列(十一)—深入理解基于共享锁的CyclicBarrier的文章,希望对你有所帮助。内容如下:CyclicBarrier概要CyclicBarrier数据结构CyclicBarrier使用方式CyclicBarrier实现原理总结CyclicBarrier 概要CyclicBarrier也是一个同步辅助器,功能和CountDownL...原创 2020-05-08 19:34:51 · 305 阅读 · 0 评论 -
并发编程系列(十一)—深入理解基于共享锁的CountDownLatch
前言CountDownLatch 概要CountDownLatch是一个同步辅助器,在一组其他线程执行完成操作之前,允许一个或多个线程一直等待。它的作用有点类似于计数器,先设定一个计数初始值,当计数达到0时,将会触发一些事件。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执。它具体以下几个特点:初始计数器的值调用构造函数new CountDownLatch(...原创 2020-05-07 19:23:48 · 334 阅读 · 0 评论 -
并发编程系列(九)—深入理解基于AQS的ReentrantLock
ReentrantLock概要ReentrantLock是一种可重入的独占锁,实现了Lock接口,依赖于AQS实现的同步锁机制,具有synchronized基本相同的行为,但也扩展了更多功能,如可中断,非公平和公平锁等,为了帮助大家更好地理解ReentrantLock的特性,我们先将ReentrantLock跟Synchronized进行比较:维度synchronizedReent...原创 2020-04-27 19:32:34 · 312 阅读 · 0 评论 -
并发编程系列(八)—初识JUC锁和AQS
大家好,牧码心今天给大家推荐一篇并发编程系列(八)—初识JUC锁和AQS的文章,希望对你有所帮助。内容如下:- 概要- JUC锁框架- AQS概要- AQS方法- AQS原理原创 2020-04-26 18:42:43 · 456 阅读 · 0 评论 -
并发编程系列(六)—深入理解CAS和Unsafe类
CAS概要两种锁机制悲观锁:乐观锁:什么是CASCAS 核心思想CAS算法CPU指令对CAS的支持或许我们可能会有这样的疑问,假设存在多个线程执行CAS操作并且CAS的步骤很多,有没有可能在判断V和E相同后,正要赋值时,切换了线程,更改了值。造成了数据不一致呢?答案是否定的,因为CAS是一种系统原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能...原创 2020-04-24 13:00:17 · 498 阅读 · 0 评论 -
并发编程系列(五)—深入理解synchronized关键字
大家好,牧码心今天给大家推荐一篇并发编程系列之基础篇(五)—深入理解synchronized的文章,希望对你有所帮助。内容如下:- 同步锁概要- synchronized 的特性- synchronized 的用法- synchronized 的实现- synchronized 的原理- synchronized 的优化原创 2020-04-23 18:25:34 · 249 阅读 · 0 评论 -
并发编程系列(四)—深入理解java内存模型和volatile
Java内存模型(Java Memory Model简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变量都存储在主内存,主内存是共...原创 2020-04-22 19:14:42 · 312 阅读 · 0 评论 -
并发编程系列(一)—多线程基本概念
前言大家好,牧码心从此系列开始将给大家推荐java多线程方面内容,今天给大家推荐一篇Java多线程系列之基础篇(一)—基本概念的文章,希望对你有所帮助。内容如下:多线程概念进程和线程线程的状态几个关键字多线程的注意点概要随着现代操作系统发展,多处理器的诞生,若系统同一时刻只处理一个任务,效率会变得很低,并且不能充分发挥计算机的能力,达到充分利用计算机资源的效果。所以为了更好的...原创 2020-04-14 18:19:26 · 246 阅读 · 0 评论 -
并发编程系列(二)—常用多线程实现的方式
大家好,牧码心今天给大家推荐一篇并发编程系列之基础篇(二)—常用多线程实现的方式的文章,希望对你有所帮助。原创 2018-05-06 16:53:18 · 374 阅读 · 0 评论 -
并发编程(一)—线程和进程
进程概述 进程是具有一定功能的程序和数据集合上的实例,当运行一个程序,就会启动一个进行。程序时候一组指令的有序集合,是一个静态实体。而进程是程序在某个数据集上的执行,是一个动态实例。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。是操作系统进行资源分配和调度的独立单位。组成 进程是一个实体...原创 2018-05-06 13:08:46 · 226 阅读 · 0 评论 -
并发编程系列(三)—线程的同步和阻塞
一、介绍在并发编程中常见的多个线程共享同一资源,比如多个线程读或些相同的数据库,或访问同一个文件等,这些共享资源在多线程操作下会引起数据不安全问题,本章介绍一些机制来避免此问题。 java提供了同步机制来实现一个临界区,当一个线程想要访问一个临界区,它使用其中的一个同步机制来找出是否有任何其他线程执行临界 区。如果没有,这个线程就进入临界区。否则,这个线程通过同步机制暂停直到另一个线...原创 2015-12-31 00:03:12 · 849 阅读 · 0 评论 -
并发编程(四)—并发集合(一)
一、介绍 在编程语言中,数据结构是一种能为计算机提供数据存储的元素,在java语言中,提供了集合框架,实现不同类型的数据结构的属性,类和接口等,可以应用于程序中。 在并发编程中,常用的大多数集合并不适用,因为它们没有控制数据 的并发访问,当多个并发线程访问同一个共享的数据结构时,会造成数据的不正确性。比如ArrayList,HashMap等。(1)、当然java提供了可以...原创 2016-01-18 00:31:19 · 2346 阅读 · 0 评论