并发编程
文章平均质量分 96
并发编程
Charge8
此随笔或为自己所写、或转载于网络。仅用于个人收集和备忘。共享:正如牛顿所说“如果我比别人看得远,那是因为我站在巨人的肩膀上”
展开
-
ThreadLocal详解
ThreadLocal详解原创 2023-03-07 20:44:57 · 6476 阅读 · 0 评论 -
同步、异步与阻塞、非阻塞的理解
一、同步、异步与阻塞、非阻塞同步和异步都是基于应用程序所在操作系统处理IO事件所采用的方式,同步是应用程序要直接参与IO读写的操作。异步所有的IO读写交给搡作系统去处理,应用程序只需要等待通知。网上有许多I/O模型的相关文章,主要涉及四个概念,同步,异步,阻塞,非阻塞。有些文章将这四个作了两两组合,于是就有了:异步阻塞和异步非阻塞,可以明确的说,这完全是牵强之理解,无论<Unix网络编程>一书中所列的I/O模式,还是POSIX标准,都没有提这两个概念。异步就是异步!只有同步才有阻塞和非阻转载 2020-07-23 11:03:31 · 3790 阅读 · 4 评论 -
Java ForkJoinPool分支合并框架
一、ForkJoinPool 分支合并框架ForkJoinPool类实现了ExecutorService接口,因此也属于线程池,是一种特殊的线程池。ForkJoinPool这个工具类从Java7 才开始提供的,优势在于,可以充分利用多cpu,多核cpu的优势,把一个大任务(fork)成若干小任务,把若干小任务放到多个处理器核心上并行执行;当这些小任务执行完成之后,最终汇总(Join)每个小任务结果后得到大任务结果的框架。从而实现用少量的线程,完成大数量的任务。1、ThreadPoolExecut原创 2020-06-26 17:21:31 · 271 阅读 · 0 评论 -
Java读写锁ReadWriteLock
一、读写锁ReadWriteLockReadWriteLock 是 JDK 中的读写锁接口,提供了 readLock 和 writeLock 两种锁的操作机制,一个是读锁,一个是写锁。ReadWriteLock同Lock一样也是一个接口,ReentrantLock 是Lock的一种实现,ReentrantReadWriteLock 是 ReadWriteLock 的一种实现。ReadWriteLock 中只有写锁支持Condition,读锁不支持,读锁调用 newCondition() 方法,会原创 2020-06-26 14:59:28 · 901 阅读 · 0 评论 -
Java线程池
Java线程的创建、销毁和线程间切换是一件比较耗费计算机资源的。如果我们需要用多线程处理任务,并频繁的创建、销毁线程会造成计算机资源的无端浪费,因此项目中会使用是线程池技术。一、线程池介绍1、线程池的优势(1)降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;(2)提高系统响应速度,当有任务到达时,通过复用已存在的线程,任务可以不需要等待新线程的创建便能立即执行;(3)提高线程的可管理性。方便线程并发数的管控。如果线程无限制的创建,不仅会消耗系统资源,还会降低系统的稳原创 2020-06-26 13:37:34 · 8773 阅读 · 3 评论 -
JUC 基本操作
一、JUC-TimeUnit枚举TimeUnit是 java.util.concurrent 中的一个枚举类(时间单元类)。一般让进行控制线程睡眠时使用。TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),相比 Thread.sleep()方法的一个好处就是 TimeUnit可以设置时间单位。这个类支持有:日(DAYS)、时(HOURS)、分(MINUTS)、秒(SECONDS)、毫秒(MILLISECONDS)、微秒(MICROSECONDS)、纳...原创 2020-06-25 13:30:38 · 636 阅读 · 0 评论 -
volatile关键字与内存可见性
一、volatile关键字与内存可见性1、测试没有 volatile关键字的demopublic class VolatileTest1 { public static void main(String[] args) { ThreadDemo threadDemo = new ThreadDemo(); new Thread(threadDemo).start(); while(true){ if(threadDe原创 2020-06-18 22:32:13 · 398 阅读 · 1 评论 -
Java 线程通信与线程的生命周期
一、并发同步1、线程通信 -- 使用 synchronized 与等待和唤醒机制 线程通信:不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信、协调完成工作.经典的生产者和消费者案例(Producer/Consumer):public class ThreadDemo { public static void main(String[] a...原创 2019-07-28 16:12:38 · 199 阅读 · 0 评论 -
Java 进程/线程与线程同步/死锁
一、进程与线程概念1、并发和并行是即相似又有区别: 并发:指两个或多个事件在同一时间段内发生。 并行:指两个或多个事件在同一时刻点发生。 在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单CPU系统中,每一时刻却仅能有一道程序执行(时间片即CPU分配给各个程序的时间),故微观上这些程序只能是分时地交替执...原创 2019-07-28 11:23:35 · 383 阅读 · 0 评论