![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程池
羽狼2021
从事java开发多年,在一线城市互联网公司任职.对新的互联网技术一直保持学习跟进的态度.
展开
-
Fork/join
package com.example.test.thread;import java.util.HashMap;import java.util.concurrent.*;public class TestHashMap {public static void main(String[] args) throws ExecutionException, InterruptedExcep...原创 2019-12-09 21:25:28 · 69 阅读 · 0 评论 -
DelayQueue延时队列
是使用优先级队列进行实现的原创 2019-12-09 19:40:05 · 68 阅读 · 0 评论 -
PriorityQueue优先级队列
<Dish> priorityQueue = new PriorityQueue<>(Comparator.comparingInt(Dish::getCalories));原创 2019-12-09 19:36:21 · 214 阅读 · 0 评论 -
ArrayBlockQueue
通过数组存储数据阻塞:package com.yulang.threadpool.java8;import org.springframework.scheduling.annotation.Scheduled;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.TimeUni...原创 2019-12-09 19:16:12 · 403 阅读 · 0 评论 -
HashSet
hashSet底层使用的hashmap存储的值使用的是hashmap的key进行存储所以不能重复原创 2019-12-09 18:59:21 · 88 阅读 · 0 评论 -
CopyOnWriteArrayList
CopyOnWriteArrayList是线程安全的原创 2019-12-09 18:50:48 · 61 阅读 · 0 评论 -
List底层
list的底层是object数组线程是不安全的原创 2019-12-09 18:46:27 · 123 阅读 · 0 评论 -
ConcurrentSkipListMap
使用的是多级索引进行查找put的时候会随机建立多级索引原创 2019-12-09 18:36:09 · 125 阅读 · 0 评论 -
CAS
package com.example.test.thread;import sun.misc.Unsafe;import java.lang.reflect.Field;import java.util.concurrent.TimeUnit;public class LockCas { volatile int value=0; private static ...原创 2019-12-07 10:51:41 · 59 阅读 · 0 评论 -
锁的概念和synchronized关键字
锁同步关键字— 自旋锁: 为了不放弃cpu执行时间,循环使用cas技术对数据尝试更新,直至成功.— 悲观锁: 假定会发生并发冲突,同步所有数据的相关操作,从读数据就开始上锁.— 乐观锁: 假定没有冲突,在修改数据是如果发现数据和之前获取的不一致,则读取最新的数据,修改后重试修改.— 独享锁: 给资源加上写锁,线程可以修改资源,其他线程不能再加锁.(单写)— 共享...原创 2019-12-06 17:36:27 · 126 阅读 · 0 评论 -
线程安全之原子性操作CAS
原子性1.竞态条件与临界区package com.yulang.threadpool.thread;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Lock;import jav...原创 2019-12-06 14:43:12 · 89 阅读 · 0 评论 -
线程池
线程池只有队列满的时候才会使用到最大线程数创建新的线程如果没有只会创建出核心线程数数量的线程,其他的线程会进入缓存以下是源码线程停止shutdown()/shutdownnow()shutdown会执行完现有的线程才关闭线程池shutdownnow()不会等线程都执行完二十会使用interrupted进行终止线程线程数量多少合适:计算型即cpu密集型:cpu核心数的1-2倍就...原创 2019-12-06 10:35:17 · 155 阅读 · 0 评论 -
线程封闭
ThreadLocalpackage com.yulang.threadpool.thread;public class TestThreadLocal { private static ThreadLocal<String> threadLocal = new ThreadLocal<>(); public static void main(S...原创 2019-12-06 09:52:23 · 66 阅读 · 0 评论 -
线程通讯
文件共享一个线程像文件中写数据,另一个线程去读取实现线程通讯内存共享static关键子进行共享生产者-消费者模型park和unpark不存在上面的问题所以也可以使用park和unpark实现线程通讯但是在同步代码块中使用同样会出现死锁的现象因为park和unpark是不会释放锁的wait和notify会释放锁...原创 2019-12-06 09:44:21 · 69 阅读 · 0 评论 -
CPU内存屏障
原创 2019-12-06 09:15:13 · 170 阅读 · 0 评论 -
线程中的stop
stop强制终止线程造成线程不安全所以可以使用标志位的方式或者interrupt的方式进行终止线程原创 2019-12-06 09:04:35 · 182 阅读 · 0 评论 -
架构师学习路线
架构师git相关git常用指令初始化:git init添加文件:把文件添加到缓冲区删除文件git commit -m "提交的说明"git statusgit diff filename查看日志版本回退:可以将当前仓库回退到历史的某个版本查看命令历史:查看仓库的操作历史git分支管理创建分支切换当前分支到指定分支创建分支并切换到创建的分支git merge 分支名删除分支查看分支合并图新建标签,默...原创 2019-11-21 17:47:34 · 319 阅读 · 0 评论 -
Spring boot 多线程配置及使用
继承ThreadPoolTaskExecutor 以便于查看线程池的使用情况package com.yulang.threadpool.conf;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.scheduling.concurrent.ThreadPoolTaskE...原创 2019-11-08 15:55:33 · 395 阅读 · 0 评论