-
JUC-01-Atomic 原子性
原子性
原子是世界上的最小单位,具有不可分割性。
比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。
再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。...
2019-01-20 06:10:12 |
Concurrency
-
JUC-00-JUC 目录,java 集合汇总
JUC
java.util.concurrent 是 java 为并发提供的强大的工具包。
本文将整理学习常见的类,API,适用场景,源码。
重点是类本身,并发和 jmm 将在其他系列学习。
Arrays
Array是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays 包含了许多处理数据的实用方法:
Arrays.asList:可以...
2019-01-20 06:10:12 |
Concurrency
-
轻松学习多线程三高系列-03-Thread pool 线程池
什么是线程池
为了避免重复的创建线程
线程池的出现可以让线程复用 通俗的讲 当有任务来的时候 就会像线程池里面拿一个线程 当工作完成后 不是关闭线程 而是归还线程到线程池中
这样避免了重复开销 这样就会节省性能和时间
多次创建线程的劣势
服务器需要接受并处理请求所以会为一个请求来分配一个线程来进行处理
如果每次请求都新创建一个线程的话
十分方便但是会存在一些问题:
...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程三高系列-02-基本信息
你需要知道的几个概念
同步: 买空调,买完之后在商店等待,知道商家把你和空调一起送回家,愉快的结束了
异步: 买空调,在网上下单,支付完成后,对你来说整个的过程便已经结束了,虽然没收到货但是你的任务完成了,剩下的时候你就等待收获即可以了。这期间你想干什么就干什么
并发:偏重与多个任务交替执行,而多个任务有可能还是串行的,一会运行A任务一会运行B任务,系统会在俩者之间不停的切换
并行:...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程三高系列-01-概览
概览
three-high-import 项目意义在于利用多线程进行千万级别导入,实现可扩展,高性能,高可用,高可靠三个高,本项目可以在千万级别数据实现无差别高性能数据上报 与导入,与普通导入相比性能提高10倍左右,而且规避风险在偶尔的机器宕机,网络波动等情况出现时,仍能够实现数据一致,数据可靠,数据重试,数据报警等功能,在一些重要数据
例如: 对账 , 账户金额,账单等,需要每日定时任...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程 16-Active Object 模式
Active Object 模式
Active Object 模式是接受异步消息的主动对象
实际案例
类信息概览:
类名
说明
Main.java
方法的总入口
MakerClientThread.java
构建客户端线程
...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程 15-Thread Special Storage ThreadLocal 模式
Thread Special Storage 模式
Thread Special Storage 模式是一种即使只有一个入口,也会为每一个线程分配特有的存储空间的模式。
实际案例
类信息概览:
类名
说明
Main.java
方法的总入口
LogInter...
2019-01-19 03:21:15 |
Thread
-
轻松学习多线程 14-Two Phase Termination 安全的终止线程模式
Two Phase Termination 模式
Two Phase Termination 模式表示先执行完终止处理,再终止线程的模式。
模式特点
安全的终止线程
必定会进行线程终止
发出请求后尽快响应终止处理
实际案例
类信息概览:
类名
说明
...
2019-01-19 03:21:15 |
Thread