Java并发编程
文章平均质量分 85
Java并发编程及并发容器相关
鬼逛
这个作者很懒,什么都没留下…
展开
-
并发编程(9)-并发安全
_____个人笔记_____((≡^⚲͜^≡))_____欢迎指正_____原创 2024-03-19 11:33:05 · 1395 阅读 · 1 评论 -
并发编程(8)-线程池
Java 中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于T2,则可以采用线程池,以提高服务器性能。线程池技术正是关注如何缩短或调整T...原创 2020-06-18 11:56:01 · 485 阅读 · 1 评论 -
并发编程(7)-并发容器
Java中的常用位运算操作符 名称 说明 & 位与 1 & 1 = 1; 0 & 0 = 0; 1 & 0 = 0; | 位或 1 | 1 = 1; 0 | 0 = 0; 1 | 0 = 1; ^ 位异或 1 ^ 1 = 0; ...原创 2020-06-11 21:36:11 · 277 阅读 · 0 评论 -
并发编程(6)-AQS
队列同步器AbstractQueuedSynchronizer是用来构建锁或其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 AQS的主要使用方式是继承,子类通过继承AQS并实现它的抽象方法来管理同步状态。 在AQS里由一个int型的state来代表这个状态,在抽象方法的实现过程中免不了要对同步状态进行...原创 2020-04-10 15:28:42 · 134 阅读 · 0 评论 -
并发编程(5)-CLH与MCS队列锁
自旋锁 一般解决多线程共享资源逻辑一致性问题有两种方式: 互斥锁:发现资源被占用时,阻塞自己直到资源解除占用,然后再次尝试获取锁; 自旋锁:发现资源占用时,一直尝试获取锁,线程不会被挂起,即没有线程调度切换的消耗;SMP 对称多处理(Symmetrical Multi-Processing),是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共...原创 2020-04-07 23:13:42 · 238 阅读 · 0 评论 -
并发编程(4)-显示锁
Java是靠synchronized关键字实现锁功能的。synchronized关键字将会隐式地获取锁,但是它将锁的获取和释放固化了。也就是先获取再释放。下面介绍Lock的一些内容。Lock特性特性 描述 尝试非阻塞地获取 锁 当前线程尝试获取 锁,如果这一时刻锁没有被其它线程获取 ,则成功获取并持有锁 能被中断地获取锁 与synchronized不同,获取到锁的...原创 2020-04-03 23:21:10 · 115 阅读 · 0 评论 -
并发编程(3)-CAS原子操作
synchronized关键字是基于阻塞的锁机制,当一个线程拥有锁时,其它线程需要等待到该线程释放锁。如果等待的线程优先级很高;或者有大量线程竞争同一锁资源,CPU将会花费大量时间和资源处理这些竞争;甚至出现了死锁等对程序的执行影响都非常世大。CAS的基本思路 利用当前处理器基本都支持的CAS()指令,判断某个地址上的值和期望原值是否相等,如果相等,给其赋予新值,否则不做任何...原创 2020-04-01 22:59:39 · 138 阅读 · 0 评论 -
并发编程(2)-并发工具类
Fork-Join核心思想 分而治之:将一个大问题分割为相同的小问题,小问题之间无关联 快速排序、归并排序、二分查询都属于分而治之的思想Fork-Join的工作密取 将一个大问题分割为相同的小问题交给多个线程执行,当一个线程先处理完任务之后,自动到其它线程的Task池中取出任务继续执行。 ForkJoinPool 中维护着多个线程(一般为CPU 核数...原创 2020-04-01 14:30:58 · 157 阅读 · 0 评论 -
并发编程(1)-基础
并行和并发并行:同时执行多个任务。比如两核的CPU并行任务量是两个。并发:单位时间可以执行的任务数。假如CPU为单核,单位时间为1秒,并发就是指这1秒内CPU执行的任务数。单核CPU在同一时刻时能执行一个线程。那在1秒内可能会交替执行100个线程。即并发量是100。高并发的好处1、充分利用CPU的资源2、提高响应时间3、可以使代码模块化、异步化、简单化多线程注意事项...原创 2020-03-31 23:59:51 · 795 阅读 · 0 评论