立即学习:https://edu.csdn.net/course/play/26270/326857?utm_source=blogtoedu
学习线程,首先来了解一下进程的概念:
进程是操作系统中应用程序的一个实例,它是划分内存空间的最小单元,是应用程序之间的边界,不同的进程代表不同的应用程序,不能共享代码和数据空间。
简单来说就是当一个程序进入到内存开始运行,OS就会创建一个对应的进程,也就是一块占有独立内存资源的空间,这个空间只能被它所包含的一到多个线程所访问。
OS同时会创建一个主线程, 所以说一个进程至少包含一个线程。
Ⅰ.线程概述:
线程,它是某个进程的一个执行单元,负责当前进程中程序的执行。
简单来说,它是CPU调度的最小单元。
Ⅱ.用途:
通常用于在一个程序中需要同时完成多个任务时,将每个任务定义为一个线程,多个线程一起工作,称为多线程。
Ⅲ.进程和线程的联系和区别
(1) 进程有独立的内存单元,而同一进程的多个线程共享代码和内存空间,从而极大地提高了程序的运行效率.
(2)相对于进程来说,线程切换时系统负荷小,占用的资源少,可以把它看作轻量级的进程.
(3) 线程不能独立运行,它必须依存在进程中。
Ⅳ.线程的六种状态
(1)新建状态(New):当线程对象被创建时,即进入了新建状态,比如:Thread t = new MyThread();
(2) 就绪状态(Runnable):当调用t.start()方法,线程进入就绪状态,并不是立即执行,而是线程已经做好准备,随时可被CPU调度执行;
(3)运行状态(Running):当CPU开始调度处于就绪状态的线程时,程序进入运行状态,也就是说,线程只有进入就绪状态,才有可能进入运行状态;
(4)阻塞状态(Blocked):处于执行状态中的线程,由于某种原因放弃CPU的使用权而停止执行,进入阻塞状态,
(5) 休眠状态(Sleep):
(6) 死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。