![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
OriSu
这个作者很懒,什么都没留下…
展开
-
几种交替打印线程的方式
一、利用synchronized,notify,wait public class Main { public static void main(String[] args) { Object o = new Object(); Thread str = new Thread(() -> { try { Thread.sleep(100); } catch (Interrupted原创 2020-09-16 00:05:53 · 241 阅读 · 0 评论 -
Java线程池相关
为什么要用线程池? 池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。每个线程池还维护一些基本统计信息,例如已完成任务的数量。 这里借用《Java 并发编程的艺术》提到的来说一下使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。原创 2020-09-02 22:44:51 · 85 阅读 · 0 评论 -
ThreadLocal原理
ThreadLocal介绍 通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢? JDK中提供的ThreadLocal类正是为了解决这样的问题。ThreadLocal类主要解决的就是让每个线程绑定自己的值,可以将ThreadLocal类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。 如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的本地副本,这也是ThreadLocal变量名的由来。他们可以使原创 2020-09-02 22:32:58 · 94 阅读 · 0 评论 -
Synchronized底层原理以及优化升级
Synchronized常见使用场景 修饰实例方法,这样所得是调用该方法的this对象public class Synchronized { public synchronized void husband(){ } } 修饰静态方法,对当前类的Class对象加锁public class Synchronized { public void husband(){ synchronized(Synchronized.class){ } }原创 2020-09-02 17:50:00 · 149 阅读 · 0 评论