狐言不胡言

导航

上一页 1 ··· 3 4 5 6 7

2021年4月16日 #

线程安全之原子性

摘要: 一:非原子性的原因 先举个栗子: 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) 编辑

上一页 1 ··· 3 4 5 6 7