![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JUC学习笔记
文章平均质量分 92
JUC学习笔记
小宇哥x
这个作者很懒,什么都没留下…
展开
-
从零开始学JUC
1、线程和进程 Java默认有几个线程? 2个----mian和GC Java真的可以开启线程吗? 开不了 public synchronized void start() { // 本地方法,底层的C++ ,Java 无法直接操作硬件 private native void start0(); } 线程的几个状态 public enum State { // 新生 NEW, // 运行 RUNNABLE, // 阻塞 BLOCKED,原创 2020-11-07 11:07:22 · 136 阅读 · 0 评论 -
JUC进阶1---不安全集合类和常用辅助类
1、集合类不安全 1.1、List 不安全 import java.util.ArrayList; import java.util.List; import java.util.UUID; public class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i = 0; i <原创 2020-11-07 11:19:20 · 140 阅读 · 0 评论 -
JUC进阶2---线程池和函数式接口
1、线程池 线程池:3大方法、7大参数、4种拒绝策略 线程池的好处: 1、降低资源的消耗 2、提高响应的速度 3、方便管理。 线程复用、可以控制最大并发数、管理线程 1.1、3大方法 public class ThreadPoolDemo { public static void main(String[] args) { ExecutorService threadPool = Executors.newSingleThreadExecutor(); //单个线程原创 2020-11-07 11:31:39 · 213 阅读 · 0 评论 -
JUC进阶3---Volatile和原子引用
1、JMM JMM : Java内存模型,不存在的东西,概念!约定! 关于JMM的一些同步的约定: 1、线程解锁前,必须把共享变量立刻刷回主存。 2、线程加锁前,必须读取主存中的最新值到工作内存中! 3、加锁和解锁是同一把锁 内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分的(对于double和long类型的变量来说,load、store、read和write操作在某些平台上允许例外) lock (锁定):作用于主内存的变量,把一个变量标识为线程独占状态 unlock (解锁):原创 2020-11-07 11:40:45 · 221 阅读 · 0 评论