
线程池
羽狼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 · 106 阅读 · 0 评论 -
DelayQueue延时队列
是使用优先级队列进行实现的原创 2019-12-09 19:40:05 · 105 阅读 · 0 评论 -
PriorityQueue优先级队列
<Dish> priorityQueue = new PriorityQueue<>(Comparator.comparingInt(Dish::getCalories));原创 2019-12-09 19:36:21 · 246 阅读 · 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 · 455 阅读 · 0 评论 -
HashSet
hashSet底层使用的hashmap存储的值 使用的是hashmap的key进行存储所以不能重复原创 2019-12-09 18:59:21 · 135 阅读 · 0 评论 -
CopyOnWriteArrayList
CopyOnWriteArrayList 是线程安全的原创 2019-12-09 18:50:48 · 93 阅读 · 0 评论 -
List底层
list的底层是object数组 线程是不安全的原创 2019-12-09 18:46:27 · 184 阅读 · 0 评论 -
ConcurrentSkipListMap
使用的是多级索引进行查找 put的时候会随机建立多级索引原创 2019-12-09 18:36:09 · 170 阅读 · 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 · 93 阅读 · 0 评论 -
锁的概念和synchronized关键字
锁 同步关键字 — 自旋锁: 为了不放弃cpu执行时间,循环使用cas技术对数据尝试更新,直至成功. — 悲观锁: 假定会发生并发冲突,同步所有数据的相关操作,从读数据就开始上锁. — 乐观锁: 假定没有冲突,在修改数据是如果发现数据和之前获取的不一致,则读取最新的数据,修改后重试修改. — 独享锁: 给资源加上写锁,线程可以修改资源,其他线程不能再加锁.(单写) — 共享...原创 2019-12-06 17:36:27 · 180 阅读 · 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 · 141 阅读 · 0 评论 -
线程池
线程池 只有队列满的时候才会使用到最大线程数创建新的线程 如果没有只会创建出核心线程数数量的线程,其他的线程会进入缓存 以下是源码 线程停止 shutdown()/shutdownnow() shutdown会执行完现有的线程才关闭线程池 shutdownnow()不会等线程都执行完二十会使用interrupted进行终止线程 线程数量多少合适: 计算型即cpu密集型:cpu核心数的1-2倍就...原创 2019-12-06 10:35:17 · 245 阅读 · 0 评论 -
线程封闭
ThreadLocal package 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 · 92 阅读 · 0 评论 -
线程通讯
文件共享 一个线程像文件中写数据,另一个线程去读取实现线程通讯 内存共享 static关键子进行共享 生产者-消费者模型 park和unpark不存在上面的问题所以也可以使用park和unpark实现线程通讯 但是在同步代码块中使用同样会出现死锁的现象因为park和unpark是不会释放锁的 wait和notify会释放锁 ...原创 2019-12-06 09:44:21 · 109 阅读 · 0 评论 -
CPU内存屏障
原创 2019-12-06 09:15:13 · 251 阅读 · 0 评论 -
线程中的stop
stop 强制终止线程造成线程不安全 所以可以使用标志位的方式或者interrupt的方式进行终止线程原创 2019-12-06 09:04:35 · 221 阅读 · 0 评论 -
架构师学习路线
架构师git相关git常用指令初始化:git init添加文件:把文件添加到缓冲区删除文件git commit -m "提交的说明"git statusgit diff filename查看日志版本回退:可以将当前仓库回退到历史的某个版本查看命令历史:查看仓库的操作历史git分支管理创建分支切换当前分支到指定分支创建分支并切换到创建的分支git merge 分支名删除分支查看分支合并图新建标签,默...原创 2019-11-21 17:47:34 · 1937 阅读 · 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 · 461 阅读 · 0 评论