Java基础多线程
文章平均质量分 90
多线程
Wan9_Xion9
这个作者很懒,什么都没留下…
展开
-
Java多线程-缓存框架
缓存框架1、使用HashMap实现一个缓存/** * @Classname ImocCache1 * @Description 最简单的缓存形式,HashMap * @Date 2021/5/24 22:44 * @Created by WangXiong */public class ImocCache1 { private HashMap<String, Integer> cache = new HashMap<>(); public原创 2021-05-30 23:07:42 · 331 阅读 · 0 评论 -
JAVA多线程-Future和Callable
1、Runable的缺点无法获取返回值Runable中的run方法,无法抛出异常2、Future和Callable的关系2.1、Callable有返回值,且可以抛出异常public interface Callable<V> { /** * Computes a result, or throws an exception if unable to do so. * * @return computed result原创 2021-05-24 22:19:57 · 94 阅读 · 0 评论 -
Java多线程-AQS
1、AQS原创 2021-05-23 14:54:16 · 83 阅读 · 0 评论 -
Java多线程-控制并发流程
1、原创 2021-05-19 22:20:37 · 270 阅读 · 0 评论 -
Java多线程-线程安全的集合
1、ConcurrentHashMap原创 2021-05-09 23:16:23 · 260 阅读 · 0 评论 -
Java基础-原子类、CAS
1、什么是原子类原子类的作用和锁类似,是为了保证并发情况下的线程安全。不过原子类相比锁,有一定优势 粒度更细:他锁的范围更小 效率更高:相比于锁,效率更高,除了高度竞争的情况2、6类原子类Atomic*基本类型原子类 Atomic*Array数组类型原子类 Atomic*Reference引用类型原子类 Atomic*FieldUpdater升级类型原子类 Adder累加器 Accumulator累加器3、...原创 2021-04-26 19:45:05 · 470 阅读 · 5 评论 -
Java基础-锁
1、锁的分类原创 2021-04-22 08:28:46 · 214 阅读 · 0 评论 -
JAVA线程基础知识-ThreadLocal
1、ThreadLocal的用途经典场景1:每个线程需要一个独享的对象(通常是工具类,典型需要使用的类有SimpleDateFormat和Random)经典场景2:每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可以让不同方法直接使用,避免参数传递的麻烦2、经典场景1每个Thread内有自己的实例副本,不共享 比喻:教材只有一本,一起做笔记有线程安全问题。复印后没问题我们使用线程池来帮助我们创建线程/** * @Classname ThreadLocalNorma原创 2021-04-15 20:25:35 · 127 阅读 · 1 评论 -
JAVA线程基础知识-线程池
1、什么是线程池原创 2021-04-11 19:06:44 · 156 阅读 · 1 评论 -
Java基础-死锁
1、什么是死锁原创 2021-04-07 19:26:06 · 90 阅读 · 3 评论 -
Java内存模型-底层原理
底层原理Java程序的编译与运行最开始,我们编写的Java代码,是*.java文件 在变异(javac命令)后,从刚才的*.java文件会变成一个新的Java字节码文件(*.class) JVM会执行刚才生成的字节码文件(*.class),并把字节码文件转化为机器指令 机器指令可以直接在CPU上执行运行,也就是最终的程序执行JVM实现会带来不同的“翻译”,不同的CPU平台的机器指令有千差万别,无法保证并发安全的效果一致。1、JVM内存结构、Java内存模型、Java对象模..原创 2021-04-05 11:51:44 · 187 阅读 · 3 评论 -
Synchronize锁详解
1、聊聊什么是锁原创 2021-03-16 23:39:18 · 533 阅读 · 0 评论 -
Java基础-线程
1、实现线程有几种方式?在实现多线程的本质中,Oracle,其实只有两种方式:实现Runable接口 继承Thread类实现Runable接口代码:public class RunableThread implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public sta原创 2021-03-27 16:42:13 · 93 阅读 · 0 评论