随笔分类 -  多线程

摘要:一、 对ThreadLocal的理解 ThreadLocal,很多叫做线程本地变量,也有叫线程本地存储,可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。 这样一个数据库连接管理类,多线程会存在线程安全问题:第一,这里面的2个方法没有进行 阅读全文
posted @ 2018-05-14 16:19 提拉没有米苏 阅读(199) 评论(0) 推荐(0)
摘要:1、简介 AbstractQueuedSynchronizer队列同步器,用来实现锁或者其他同步组件的基础框架 AbstractQueuedSynchronizer使用int类型的volatile变量维护同步状态 一般使用AQS的主要方式是继承,子类通过实现它提供的抽象方法来管理同步状态,主要管理的 阅读全文
posted @ 2018-04-11 17:24 提拉没有米苏 阅读(154) 评论(0) 推荐(0)
摘要:wait()和notify()、notifyAll()是object类的方法,sleep(long times)和yeild()是Thread的方法 (1)、常用的wait方法有wait()和wait(long timeout); void wait() 在其他线程调用此对象的 notify() 方 阅读全文
posted @ 2018-04-03 11:20 提拉没有米苏 阅读(197) 评论(0) 推荐(0)
摘要:SimpleDateFormat非线程安全主要原因是parse()方法使用calendar来生成返回的Date实例,而每次parse之前,都会把calendar里的相关属性清除掉。 问题是这个calendar是个全局变量,也就是线程共享的。因此就会出现一个线程刚把calendar设置好,另一个线程就 阅读全文
posted @ 2018-03-29 18:33 提拉没有米苏 阅读(184) 评论(0) 推荐(0)
摘要:java线程的几种状态转化图: Java线程一共有七个状态,分别是新建(New),就绪(Ready to run),运行中(Running),睡眠(Sleeping),阻塞(Blocked),等待(Waiting),死亡(Dead/Terminate) 线程间的状态转化 1、新建(new) 新建一个 阅读全文
posted @ 2018-03-20 17:44 提拉没有米苏 阅读(459) 评论(0) 推荐(0)
摘要:对于 Java 锁的分类没有严格意义的规则,我们常说的分类一般都是依据锁的特性、锁的设计、锁的状态等进行归纳整理的,所以常见的分类如下: 公平锁和非公平锁:公平锁是多线程按照锁申请的顺序获取锁,非公平锁就是没有顺序、完全随机,所以会造成优先级反转或者饥饿现象:sychronized就是非公平锁,Re 阅读全文
posted @ 2018-03-19 17:24 提拉没有米苏 阅读(715) 评论(0) 推荐(0)
摘要:MESI(也称伊利诺斯协议)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中。 MESI协议中的状态 CPU中每个缓存行使用的4种状态进行标记(使用额外的两位bit表示) M和E的数据都是本core独有的,不同之处是M状态的数据是dirty(和内存中的不一致) 阅读全文
posted @ 2018-03-19 15:50 提拉没有米苏 阅读(1940) 评论(0) 推荐(0)
摘要:使用多线程的三种方式 1、实现Runnable接口 2、实现Callable接口 3、继承Thread类 4、jdk1.5之后,使用Executor线程池 实现Runnable和Callable接口只是当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还是需要Thread来调用,可以说是 阅读全文
posted @ 2018-03-15 17:48 提拉没有米苏 阅读(112) 评论(0) 推荐(0)
摘要:在多线程的场景下,有些并发流程需要人为来控制,在JDK的并发包里提供了几个并发工具类:CountDownLatch、CyclicBarrier、Semaphore。 一、CountDownLatch 这个CountDownLatch的构造函数接受一个int类型的参数作为计数器,N表示阻塞的线程必须等 阅读全文
posted @ 2018-03-06 15:35 提拉没有米苏 阅读(156) 评论(0) 推荐(0)
摘要:方式一:使用Thread里面的join方法 方式二:jdk1.5引入的Executor执行器,使用newSingleThreadExecutor,创建只有一个线程的线程池,所有任务放在一个没有上限的LinkedBlockingQueue队列里(FIFO(先进先出)),等待唯一的单线程来执行任务,保证 阅读全文
posted @ 2018-01-23 11:01 提拉没有米苏 阅读(203) 评论(0) 推荐(0)