
多线程
文章平均质量分 93
w7486
这个作者很懒,什么都没留下…
展开
-
线程池学习
目录为什么引入线程池自定义线程池线程池的执行流程为什么引入线程池创建过多线程带来的问题:消耗内存资源 CUP的开销(上下文切换)所以引入了线程池的概念线程池的逻辑就是提前创建好若干个线程,放进一个容器里(HashSet),如果有任务,就把这个任务分配给线程池中的线程来执行。线程执行完任务不会销毁,而是就是等待任务的分配。线程池的好处避免频繁创建销毁线程带来的性能开销(复用线程) 合理设置线程大小避免出现资源瓶颈(控制资源数量)Java中提供的线程池//原创 2022-03-01 20:13:03 · 384 阅读 · 0 评论 -
JUC源码学习
目录1.LockReentrantLock源码解析公平锁和非公平锁的区别什么是AQSSynchronized和Lock的区别2.Condition( 线程通信)3.BlockQueue阻塞队列4.CountDownLatch5.Semaphore(信号灯)6.Atomic原子类1.LockLock是JUC下控制锁的接口,它要比前面用到的Synchronized更加灵活。他有一些方法lock()加锁 unlock()释放锁,它与lock()配套使用原创 2022-02-23 14:58:31 · 1090 阅读 · 0 评论 -
深入学习ThreadLocal
目录1.ThreadLoca的作用2.ThreadLocal源码get方法set方法扩容机制Hash冲突时3.ThreadLocal面试常问ThreadLocal怎么解决hash冲突的?ThreadLocal怎么解决内存泄漏的?value为什么不能用弱引用?1.ThreadLoca的作用ThreadLoca的作用:可以实现线程隔离简单案例了解一下ThreadLocapublic class ThreadLocalDemo { public原创 2022-02-21 00:31:22 · 421 阅读 · 0 评论 -
Java并发编程
一.何为并发我们先从生活场景中找个例子;大家有没有排队买过奶茶,往往会排很长很长的队伍,因为要做奶茶,做奶茶的速度赶不上买的人的速度。那么这个场景去其实就是并发。那么映射到我们的并发编程,就是一个接口假如同时有100个人访问,那么这个就属于并发。那么什么是高并发?高并发就是我系统能承受的并发数,所以,高并发其实是跟我们的系统有关的,比如一个小奶茶店,一个上午只能做500杯奶茶,那么如果有个3,400人排队,其实就是已经属于高并发了,那么500就是你系统能承受的...原创 2022-03-01 20:14:22 · 823 阅读 · 1 评论