如何深入理解并发编程的高级概念?
- 内容介绍
- 文章标签
- 相关推荐
本文共计15981个文字,预计阅读时间需要64分钟。
目录+并发编程进阶+线程池的使用+执行带返回值的任务+执行定时任务+线程池实现原理+并发工具类+计数器锁+CountDownLatch+循环屏障+CyclicBarrier+信号量+Semaphore+数据交换+Exchanger+Fork/Join框架
目录- 并发编程进阶
- 线程池的使用
- 执行带返回值的任务
- 执行定时任务
- 线程池实现原理
- 并发工具类
- 计数器锁 CountDownLatch
- 循环屏障 CyclicBarrier
- 信号量 Semaphore
- 数据交换 Exchanger
- Fork/Join框架
- 线程池的使用
在我们的程序中,多多少少都会用到多线程技术,而我们以往都是使用Thread类来创建一个新的线程:
public static void main(String[] args) {
Thread t = new Thread(() -> System.out.println("Hello World!"));
t.start();
}
利用多线程,我们的程序可以更加合理地使用CPU多核心资源,在同一时间完成更多的工作。
但是,如果我们的程序频繁地创建线程,由于线程的创建和销毁也需要占用系统资源,因此这样会降低我们整个程序的性能,那么怎么做,才能更高效地使用多线程呢?
我们其实可以将已创建的线程复用,利用池化技术,就像数据库连接池一样,我们也可以创建很多个线程,然后反复地使用这些线程,而不对它们进行销毁。
虽然听起来这个想法比较新颖,但是实际上线程池早已利用到各个地方。
本文共计15981个文字,预计阅读时间需要64分钟。
目录+并发编程进阶+线程池的使用+执行带返回值的任务+执行定时任务+线程池实现原理+并发工具类+计数器锁+CountDownLatch+循环屏障+CyclicBarrier+信号量+Semaphore+数据交换+Exchanger+Fork/Join框架
目录- 并发编程进阶
- 线程池的使用
- 执行带返回值的任务
- 执行定时任务
- 线程池实现原理
- 并发工具类
- 计数器锁 CountDownLatch
- 循环屏障 CyclicBarrier
- 信号量 Semaphore
- 数据交换 Exchanger
- Fork/Join框架
- 线程池的使用
在我们的程序中,多多少少都会用到多线程技术,而我们以往都是使用Thread类来创建一个新的线程:
public static void main(String[] args) {
Thread t = new Thread(() -> System.out.println("Hello World!"));
t.start();
}
利用多线程,我们的程序可以更加合理地使用CPU多核心资源,在同一时间完成更多的工作。
但是,如果我们的程序频繁地创建线程,由于线程的创建和销毁也需要占用系统资源,因此这样会降低我们整个程序的性能,那么怎么做,才能更高效地使用多线程呢?
我们其实可以将已创建的线程复用,利用池化技术,就像数据库连接池一样,我们也可以创建很多个线程,然后反复地使用这些线程,而不对它们进行销毁。
虽然听起来这个想法比较新颖,但是实际上线程池早已利用到各个地方。

