本文主要是介绍线程、多线程、线程池的理解与使用——小马同学@Tian,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
线程(补充)
1.1 线程的三大特性
原子性、可见性、有序性
1.2 线程和进程
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
调度和切换:线程上下文切换比进程上下文切换要快得多;
1.3 线程创建方式
1、继承Thread类
2、实现Runnable接口
3、使用匿名内部类
4、使用线程池
5、实现callable接口
1.4 线程API
1.5 线程五大状态
1.6 线程安全
1.7 线程通信
1.8 线程池
1.8.1 线程池的优势
总体来说,线程池有如下的优势:
(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
1.8.2 线程池的使用
线程池的真正实现类是ThreadPoolExecutor,其构造方法有如下4种:
public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), defaultHandler);}public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit
这篇关于线程、多线程、线程池的理解与使用——小马同学@Tian的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!