随笔分类 -  并发编程

摘要:目录: 概述 同步队列、条件队列 Condition源码解析 概述 首先我们知道Condition的await()、signa()是内置锁synchronize配套的wait()及notify()的增强,可以更加细化的控制锁的唤醒条件。 那么我们这里来类比下它们之间的机制: 同步:内置锁的wait( 阅读全文
posted @ 2020-06-21 10:53 被猪附身的人 阅读(602) 评论(0) 推荐(0)
摘要:目录: Lock & Condition & AQS使用示例 Lock & Condition & AQS结构简述 Lock与Condition的API解析 Lock & Condition & AQS使用示例 在说Lock和Condition之前我们先来看一下这两个的用法,从用法到源码,一步一步来 阅读全文
posted @ 2020-06-18 22:37 被猪附身的人 阅读(257) 评论(0) 推荐(0)
摘要:目录: 共享锁和独占锁的区别 共享锁实现原理 共享锁和独占锁在源码上有何区别 共享锁和独占锁的区别 共享锁和独占锁(排它锁)最大的区别就是,在同一时刻能否有多个线程获取同步状态。 独占模式,获取资源后,只有一个线程获取同步状态并执行。 共享模式,在获取资源后,多个线程共同执行。 共享锁实现原理 1、 阅读全文
posted @ 2020-06-16 22:56 被猪附身的人 阅读(297) 评论(0) 推荐(0)
摘要:目录: 学习目的 AbstractOwnableSynchronizer源码解析 AQS为什么如此重要 重要性说明 AQS内部类Node源码解析 AQS实例属性源码解析 AQS独占锁加锁 AQS独占锁解锁 总结 知识点总结 其它收获 学习目的 上一节学习到的ThreadPoolExecutor在并发 阅读全文
posted @ 2020-06-14 18:43 被猪附身的人 阅读(274) 评论(0) 推荐(0)
摘要:目录: ThreadPoolExecutor ForkJoinPool 两者的比较 ThreadPoolExecutor 1、无返回值demo 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 // 阅读全文
posted @ 2020-06-10 22:51 被猪附身的人 阅读(264) 评论(0) 推荐(0)
摘要:目录: ThreadLocal介绍 ThreadLocal使用 ThreadLocal注意点 ThreadLocal介绍 ThreadLocal是线程的本地变量副本,它是每个线程独立维护的值,不受其它线程的影响。 基本方法: public void set(T value):设置当前局部变量的值。 阅读全文
posted @ 2020-03-17 22:27 被猪附身的人 阅读(191) 评论(0) 推荐(0)
摘要:目录: synchronize作用 synchronize使用方式 synchronize导致的死锁 synchronize特性 synchronize原理 synchronize作用 在并发场景下限制共享资源的访问,使其只有一个线程可以执行某个方法或代码块,实现线程安全。 synchronize使 阅读全文
posted @ 2020-03-17 22:12 被猪附身的人 阅读(315) 评论(0) 推荐(0)
摘要:目录: 计算机硬件系统架构演进(缓存一致性问题) 为何演进,如何演进 演进后导致了什么问题 如何解决 JVM如何解决缓存一致性问题 如何解决 volatile内存语意含义 volatile原理 计算机硬件系统架构演进(缓存一致性问题) 1、为何演进,如何演进。 计算机在运行程序的时,每条指令都是在C 阅读全文
posted @ 2020-03-15 11:34 被猪附身的人 阅读(223) 评论(0) 推荐(0)
摘要:目录: 常见属性 构造函数 start() run() 常见属性: 1 /** 2 * 线程名称 3 */ 4 private volatile String name; 5 6 /** 7 * 线程优先级 8 */ 9 private int priority; 10 11 /** 12 * 是否 阅读全文
posted @ 2019-09-24 14:57 被猪附身的人 阅读(202) 评论(0) 推荐(0)
摘要:目录: 线程组概念 一级关联 多级关联 线程组自动归属特性 批量管理线程 线程组概念: 线程组其实就是线程的一个集合,其中可以包含线程,也可以包含线程组,它和树形结构非常相似。 线程组可以有效的组织线程和线程组。 一级关联: 父对象中有子对象,但不存在孙子对象。 1 public class Tes 阅读全文
posted @ 2019-09-23 20:44 被猪附身的人 阅读(189) 评论(0) 推荐(0)
摘要:目录: sleep() wait() notify()/notifyAll() yieid() join() 总结 sleep(): 1、sleep()方法的作用是让线程暂停指定的毫秒数。 2、sleep()方法只是暂时交出CPU的执行权,并非释放锁。 3、sleep()方法不需要在synchron 阅读全文
posted @ 2019-09-23 10:11 被猪附身的人 阅读(179) 评论(0) 推荐(0)
摘要:目录: 线程优先级 线程优先级的特性 守护线程 总结 线程优先级: 1、在java中线程优先级的范围是1~10,默认为5,数值越大优先级越高。 2、高优先级线程的执行会优先于低优先级的线程,但也仅仅只是优先执行而已。 线程优先级的特性: 1、继承性 若线程A中执行了线程B,那么线程B有着和线程A同样 阅读全文
posted @ 2019-09-22 11:05 被猪附身的人 阅读(481) 评论(0) 推荐(0)
摘要:目录: 设置退出标识 interrupt()方法 废弃的终止方式 总结 设置退出标识: 1 public class FlagThread extends Thread { 2 /** 3 * 退出标识 4 */ 5 public volatile boolean exit = false; 6 7 阅读全文
posted @ 2019-09-21 22:56 被猪附身的人 阅读(229) 评论(0) 推荐(0)
摘要:目录: 线程中断的概念 中断的方法 总结 线程中断的概念: 线程中断是一种协作机制,它的执行并不是让线程真的中断,而是通知线程去中断。 就像有个小姐姐要加你好友,然后系统发了消息给你,加不加不还是取决于你自己嘛 φ(>ω<*) 。 中断的方法: 1、public static boolean int 阅读全文
posted @ 2019-09-21 21:47 被猪附身的人 阅读(202) 评论(0) 推荐(0)
摘要:目录: 进程、线程概念及一些注意点 线程的创建 线程的生命周期 进程、线程及一些注意点: 1、进程:计算机资源分配的基本单位,它让操作系统的并发成为可能。 2、线程:计算机资源调度的基本单位,它让进程内部的并发成为可能。 3、注意点:一个进程虽然包括多个线程,但是这些线程是共同享有进程占有的资源和地 阅读全文
posted @ 2019-09-20 16:34 被猪附身的人 阅读(161) 评论(0) 推荐(0)