多线程与高并发
文章平均质量分 56
多线程与高并发的实践,主要是工作中用的应用
琴上那本书
这个作者很懒,什么都没留下…
展开
-
volatile和synchronized的区别
volatilevolatile的作用保证线程可见性(堆内存中)MESI(缓存一致性协议)CPU级缓存一致性禁止指令重排(CPU)synchronized 底层实现早期synchronized是重量级锁,需要去系统申请锁,效率非常低JavaSE1.6之后引入 偏向锁–》自旋锁–》重量级锁偏向锁:只有一个线程访问的时候给object对象头上markword记录这个线程,内部实现的时候只记录的线程ID执行时间短、线程数少可以用自旋锁执行时间长、线程数多可以用重量级锁vo原创 2021-08-10 17:30:23 · 105 阅读 · 0 评论 -
ThreadPoolExecutor源码详解一
ThreadPoolExecutor源码详解一原创 2021-07-15 17:13:01 · 64 阅读 · 0 评论 -
Java常用线程池体系及源码解读
Java常用线程池体系结构图:接口说明Executor:线程池顶级接口;ExecutorService:线程池次级接口,对Executor做了一些扩展,增加了一些功能;ScheduledExecutorService:对ExecutorService做了一些扩展,增加一些定时任务相关的功能;AbstractExecutorService:抽象类,运用模板方法设计模式实现了一部分方法;ThreadPoolExecutor:普通线程池类,包含最基本的一些线程池操作相关的方法实现;Schedu原创 2021-07-06 21:12:43 · 107 阅读 · 0 评论 -
JAVA中创建线程的三种方式及区别
JAVA创建线程的三种方式及区别线程应用的几种场景:继承Thread实现Runnable实现Callable与Future优劣势1.继承Thread定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。0代码:package com.iread7.juc;public class ThreadDemo exten原创 2021-07-05 16:03:25 · 246 阅读 · 0 评论