上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 31 下一页
摘要: 一 . 概述 在之前我们介绍了CountDownLatch和CyclicBarrier两个类. 其中,CountDownLatch是凑足信号量启动一个线程运行,而CyclicBarrier是凑够信号量将原先阻塞的线程全部启动. 现在我们需要介绍一个信号量类 Semaphore. 说到信号量,大家都不 阅读全文
posted @ 2018-05-08 21:46 最爱五仁月饼 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在之前我们说到了CountDownLatch,现在要说的这个CyclicBarrier和CountDownLatch差不多. 我们通过类的结构慢慢分析. 二 . 类的结构 构造函数一: 需要一个int值表示需要参与的线程数量 这个构造函数多了一个Runnable的线程任务,这个构造函数 阅读全文
posted @ 2018-05-08 20:49 最爱五仁月饼 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在前面我们时候说到了使用Condition实现线程的精确控制,但是我们在日常使用的时候我们发现我们的并发总是有一些规律. 比如在某些线程完成任务之后,该线程才开始,这样的场景总是并发场景中经常出现的. 为此,JUC提供了并发的辅助类帮助我们简化这种线程并发场景的实现. 二 . Count 阅读全文
posted @ 2018-05-08 20:32 最爱五仁月饼 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在之前我们我们线程之间进行通信使用的是内置锁的wait()方法和notify()实现的,而我们使用了高级锁之后,就可以使用Condition进行条件控制, 通过精确的控制我们能够完成更简单的线程控制. 二 .Condition的使用 下面我们定义三个线程,让他们按照次序进行输出. 我们 阅读全文
posted @ 2018-05-08 19:34 最爱五仁月饼 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在JDK5之前,我们都需要使用synchronized来完成内置锁的实现同步效果,Synchronized的操作力度过大,因而出现了一个替代的产品ReentrantLock(可重入锁). 二 .可重入锁的基本使用 在这里我们还是使用前面的计数操作完成演示. 我们看到可重入锁的使用非常简 阅读全文
posted @ 2018-05-07 23:07 最爱五仁月饼 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在之前我们讨论过线程的高效的提升方式,在JUC之中提供了各种方式来提升并发的效果. 其中大多数的并发容器,并发辅助类,队列等都使用了一个类,这个类就是AQS. 可以这么说AQS完成了JUC的大部分底层实现. 二 .AQS的介绍 AbstractQueuedSynchronizer(抽象 阅读全文
posted @ 2018-05-07 22:36 最爱五仁月饼 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 上一节中我们提到了Future对象,是从Callable接口中封装返回接口的对象. 这一节就说一下Future接口. 二 .Future接口 这个接口总的来说就是描述了返回结果的对象,这是一个异步的方式.只有调用了get()方法的时候会发生阻塞现象. 三 总结 在这里我们不去说异步的问 阅读全文
posted @ 2018-05-07 21:59 最爱五仁月饼 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 一 .概述 在前面,我们创建线程总是需要实现run()方法,无论继承还是实现run()方法. 我们首先看一下run()方法的结构. 我们首先看到的是run()方法没有返回值,没有异常声明. 这也就决定我们使用run()方法会有一点麻烦的地方. [1]返回值我们需要特殊处理 [2]异常的问题有些麻烦, 阅读全文
posted @ 2018-05-07 21:46 最爱五仁月饼 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在前面我们介绍了线程的同步和通信的方式,其根本就是在线程并发的时候更好的保证线程的安全性,可见性,有序性. 总的来说,就是将线程的不可控制的特性尽量降低,在正确和性能之间寻找平衡点. 控制就意味性能的降低,但是我们需要控制来保证安全性. 总的来说,现在就是我们寻找线程的平衡点的一个时机 阅读全文
posted @ 2018-05-07 21:27 最爱五仁月饼 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 一 . 概述 在前面我们使用各种方式解决了线程的安全性问题,无论是加锁和是使用无锁的方式,本质上讲都是控制线程的执行顺序. 但是前面对线程的控制顺序还只是出于粗粒度的控制,我们常常希望看到的是一个线程完成任务然后激发另外一个线程的线程任务的执行, 或者两个线程交互完成任务(生产者生产一个产品,消费者 阅读全文
posted @ 2018-05-07 20:41 最爱五仁月饼 阅读(87) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 31 下一页