狐言不胡言

导航

2021年4月16日 #

多线程之Lock接口

摘要: 之前写了一下synchronized关键字的一点东西,那么除了synchronized可以加锁外,JUC(java.util.concurrent)提供的Lock接口也可以实现加锁解锁的功能。 看完本文,希望您可以了解或者掌握: 1:Lock接口的实现 2:Condition的原理和概念 3:Ree 阅读全文

posted @ 2021-04-16 15:42 狐言不胡言 阅读(90) 评论(0) 推荐(0) 编辑

synchronized锁由浅入深解析

摘要: 一:几种锁的概念 1.1 自旋锁 自旋锁,当一个线程去获取锁时,如果发现锁已经被其他线程获取,就一直循环等待,然后不断的判断是否能够获取到锁,一直到获取到锁后才会退出循环。 1.2 乐观锁 乐观锁,是假设不会发生冲突,当去修改值的时候才判断是否和自己获得的值是一样的(CAS的实现,值也可以是版本号) 阅读全文

posted @ 2021-04-16 15:27 狐言不胡言 阅读(364) 评论(0) 推荐(0) 编辑

获取线程的执行结果

摘要: 一:Runnable和Callable的区别 最本质的区别在于,Runnable没有返回结果,Callable会有一个返回结果,返回结果是泛型,可以自己定义。举例子说明: public class ThreadRunnable { public static void main(String[] a 阅读全文

posted @ 2021-04-16 15:25 狐言不胡言 阅读(111) 评论(0) 推荐(0) 编辑

线程stop和Interrupt

摘要: 一:stop终止线程 举例子: public class ThreadStop { public static int i; public static int j; public static void main(String[] args) throws InterruptedException 阅读全文

posted @ 2021-04-16 15:17 狐言不胡言 阅读(169) 评论(0) 推荐(0) 编辑

线程安全之原子性

摘要: 一:非原子性的原因 先举个栗子: public class ThreadCount { volatile int a = 0; public void add() { a++; } } 点击并拖拽以移动 public static void main(String[] args) throws In 阅读全文

posted @ 2021-04-16 15:15 狐言不胡言 阅读(193) 评论(0) 推荐(0) 编辑

线程协作的三种方式

摘要: 线程之间需要进行通信,通信有数据共享和线程协作两种方式,这篇主要说线程协作的内容。 一:数据共享 1:文件共享;2:网络共享;3:变量共享。 二:线程协作 先来个场景:落魄程序员摆摊卖起了炒粉,起先有人去买炒粉,发现炒粉卖完了,只能失落的回家了;后来为了不让客户白来一趟,落魄程序员想到了一个办法,线 阅读全文

posted @ 2021-04-16 15:05 狐言不胡言 阅读(225) 评论(0) 推荐(0) 编辑

线程安全之可见性(三)

摘要: 一:final的处理 1.1 经final修饰的变量或者对象,在其构造函数中初始化之后,其他线程一定可以获得正确的构造版本,即可以获得变量或者对象字段的最新值。 看下面的代码: public class ThreadFinal1 { public final int i; public int j; 阅读全文

posted @ 2021-04-16 15:01 狐言不胡言 阅读(66) 评论(0) 推荐(0) 编辑

线程安全之可见性(二)

摘要: 一:不可见的原因 上一部分,根据代码可以知道,产生不可见的原因有两点: 1:CPU高速缓存会造成极短时间内数据的不可见 2:指令重排是导致不可见的主要原因 二:Java内存模型(JMM) java内存模型主要是描述多线程程序的语义,多个线程对数据进行了修改,该读取哪个的问题;Java内存模型并没有规 阅读全文

posted @ 2021-04-16 14:59 狐言不胡言 阅读(60) 评论(0) 推荐(0) 编辑

线程安全之可见性(一)

摘要: 一:举个栗子 先举个例子: public class ThreadVolidate { public static int i = 0; public static Boolean flag = true; public static void main(String[] args) throws 阅读全文

posted @ 2021-04-16 14:58 狐言不胡言 阅读(87) 评论(0) 推荐(0) 编辑

线程池概念及实现简单的线程池

摘要: 本文主要介绍线程池的概念,原理,以及简单实现一个线程池,若文中有不足或错误之处,请指出(ps:感激涕零,不要让我陷入错误的误区。。。) 一:线程池的基本概念和原理 在此之前,先来思考一个问题,为啥要用线程池呢? ​ 线程越多,不一定就会执行的越快,受到CPU的影响,我们要控制线程的数量,线程池它的一 阅读全文

posted @ 2021-04-16 14:55 狐言不胡言 阅读(119) 评论(0) 推荐(0) 编辑