线程
和尚不洗碗
不断努力学习,提供自己的能力。学习+思考+坚持=成功。
展开
-
Java线程:创建线程的方式及实现
1. 从JDK1.5开始,Java提供了3种方式来创建,启动多线程:Ø 继承Thread类来创建线程类,重写run()方法作为线程执行体。Ø 实现Runnable接口来创建线程类,重写run()方法作为线程执行体。Ø 实现Callable接口来创建线程类,重写run()方法作为线程执行体。其中第一种方式效果最差,它有2点坏处:l 线程类继承了Thread类,无法在继承其他父类。...转载 2019-03-12 21:43:59 · 238 阅读 · 0 评论 -
Java线程:多线程同步器
Java中多线程开发时,离不开线程的分工协作,常用的多线程的同步器有如下几种:1、CountDownLatch应用场景:等待一组线程任务完成后在继续执行当前线程。用法:定义一个CountDownLatch变量latch,在当前线程中调用latch.await()方法,在要等待的一组线程中执行完后调用latch.countDown()方法,这样当该做线程都调用过latch.countDo...转载 2019-03-12 21:44:07 · 416 阅读 · 0 评论 -
Java线程:sleep() 、join()、yield()区别
sleep() sleep()方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级的线程得到执行的机会,也可以让低优先级的线程得到执行机会。但是sleep()方法不会释放“锁标志”,也就是说如果有synchronized同步块,其他线程仍然不能访问共享数据。 wait() wait()方法需要和noti...转载 2019-03-12 21:44:18 · 516 阅读 · 0 评论 -
Java线程:CountDownLatch 原理
CountDownLatch的使用CountDownLatch是同步工具类之一,可以指定一个计数值,在并发环境下由线程进行减1操作,当计数值变为0之后,被await方法阻塞的线程将会唤醒,实现线程间的同步。 public void startTestCountDownLatch() { int threadNum = 10; final CountDownL...转载 2019-03-12 21:44:29 · 276 阅读 · 0 评论 -
Java线程:CyclicBarrier 原理
1.CyclicBarrier 字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时候,屏障才会开门。所有被屏障拦截的线程才会运行。2.常用的方法: CyclicBarrier(int parties)创建一个新的 CyclicBarrier,它将在给定数量的参与者(线程...转载 2019-03-12 21:44:37 · 337 阅读 · 0 评论