并发编程
文章平均质量分 88
不编程的水狼
毕业于华南农业大学,软件工程专业;专注于企业应用开发5年工作经验;现致力于平安工作;向往千万级并发的架构知识体系,一点一点进步,与时俱进。
展开
-
【Java并发体系】synchronized 的使用与原理
基本语法 synchronized 有三种方式来加锁,不同的修饰类型,代表锁的控制粒度 修饰实例方法,获取当前对象锁; 修饰静态方法,获取当前类的Class对象锁; 修饰代码块,获取指定对象锁; // 修饰实例方法 private synchronized int nextThreadNum() { return 0; } // 修饰静态方法 private static synchro...原创 2020-05-08 00:16:42 · 210 阅读 · 0 评论 -
【Java并发体系】线程基础
线程的出现 在多核CPU,多线程可以真正意义上并行执行 线程是CPU最小的调度基本单位 线程的创建,销毁比进程快 当进程存在多个同时执行的互不依赖任务,当一个任务被阻塞会导致其他任务也无法执行 线程生命周期 线程状态图 NEW:初始新建状态,还未调用start(),向操作系统提交创建线程,分配资源 RUNNABLED:可运行状态(可能在运行中) yield =)释放cpu退让给同等优先级...原创 2020-05-04 03:43:11 · 132 阅读 · 0 评论 -
AbstractQueuedSynchronizer之AQS源码解读
AQS:核心方法 acquire(int arg): 进入临界区,失败加入队列,park, unpark之后再次尝试进入临界区 boolean tryAcquire(int arg); 试图进入临界区; Node addWaiter(Node): 将该线程添加至同步队列尾节点(双向链表队列) + 当前线程构建成 新Node节点; + 新Node CAS 至 tail; + (CAS...原创 2020-04-06 21:08:35 · 180 阅读 · 0 评论