![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 60
不生气的打工人
这个作者很懒,什么都没留下…
展开
-
线程池知识一文疏通
线程池知识一文疏通 线程池的好处 线程池能够对线程进行统一分配,调优和监控: 降低资源消耗(线程无限制地创建,然后使用完毕后销毁) 提高响应速度(无须创建线程) 提高线程的可管理性 一、阻塞队列 BlockingQueue BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景。 一个线程往里边放,另外一个线程从里边取的一个 BlockingQueue。 一个线程将会持续生产新对象并将其插入到队列之中,直到队列达到它所能容纳的临界点。也就是说,它是有限的。如果该阻塞队列原创 2021-10-09 19:20:30 · 152 阅读 · 0 评论 -
多线程与高并发(二)
多线程与高并发(二) volatile关键字 保证线程可见性 如果不加volatile关键字 线程A更改的数据 线程B获取新数据的时间不可控制 线程间不可见 即堆内存中的数据是否变化 和 线程B是否读取到堆内存中的数据 不可控制 加了volatile之后线程间数据可见性 MESI CPU的缓存一致性协议 禁止指令重排序 编译器编译期间可能会发生指令重排(目的是为了更快的让CPU执行) DCL单例 Double Check Lock Mgr06.java loadfence原语原创 2021-04-19 23:07:54 · 59 阅读 · 0 评论 -
多线程与高并发(一)
多线程与高并发(一) 线程概念、启动方式、常用方法 线程创建的方法 实现Runnable接口 继承Thread类 创建线程池 线程启动的方法 Thread类的start方法 这里需要注意:如果是实现接口创建的线程 线程启动时需要使用new Thread(xxx).start() 线程常用方法 join notify notifyAll sleep wait synchronized() 锁的是对象而不是代码 不能用String常量 Integer Long 线程同步 synchroni原创 2021-04-19 23:07:23 · 42 阅读 · 0 评论