多线程以及JUC
一、JUC
JUC包(java.util.concurrent) 很实用的工具类。
提供了可调,灵活的线程池。
今天学习的工具类每一种都有对应的有趣案例…
可惜…
1.ReentrantReadWriteLock
2.CountDownLatch
3.CyclicBarrier
4.Semaphore
二、多线程
2.1、线程和进程
1.程序:是一段静态的代码。
2.进程:是程序的一次执行过程,或者是正在运行的一个程序。
3.线程:是进程内部的一条具体的执行路径。若一个程序可同一时间执行多个线程,就是支持多线程的。
使用线程操作的好处:
1.将耗时间的任务放到后台去执行,例如载入、加载,实际上后台在疯狂的读数据。
2.提高计算机系统CPU的利用率。
2.2、线程安全及解决方式
多个线程同时共享同一个资源时,可能会出现数据冲突。
解决方式是加锁…
lock或者synchronized
==>线程同步,多个线程共享同一个资源环境下,每个线程工作时不会受到其他线程的干扰称为线程的同步。
三、线程的创建方式
3.1、继承Thread类
3.2、实现Runnable接口
—隐匿内部类实现接口,可以使用lambda表达式。
3.3、使用Callable接口
需要借助FutrueTask类。
3.4、使用线程池
创建线程池的两种方式:
1.直接通过ThreadPoolExecutor实现类,
2.通过工厂类Executors中的方法创建,工厂创建,底层也是通过1。
来源:CSDN
作者:白小纯纯
链接:https://blog.csdn.net/weixin_45943729/article/details/103882125