关于进程及线程

什么是进程?

什么是进程?其实并没有完全严格的定义。在《深入理解计算机系统》一书中,这样描述进程:进程是操作系统对一个正在运行的程序的一种抽象。
《操作系统概念》一书中,提到了进程是执行中的程序,还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示。另外,进程还可能包括堆(heap),是在进程运行期间动态分配的内存
内存中进程的结构如图所示:
内存中进程的结构

什么是线程?

一个较为准确的定义:线程是一个进程内部的控制序列
如何理解这句话呢?通俗点来讲,线程就是进程中的一个独立运行单位,是进程中的实际运作单位。一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程可控制一段代码(事情、任务)的执行,这段代码执行完毕,线程就结束了,这是一个线程的生命周期。

线程实在CPU上执行的。CPU是多少核多少线程,代表电脑能用同一时间执行多少个线程。

线程执行时,需要消耗CPU、高速缓存、内存等硬件资源。

进程和线程的区别

进程是资源竞争的基本单位
线程是程序执行的最小单位

什么是多线程?

一个进程中同时有多个线程,那进程就是一个多线程的进程。但线程不是无限多的,硬件资源的条件,限制了线程的数目以及执行的效率。

线程具有并发性和并行性
在单个处理器的多线程进程中,处理器可以在线程之间切换执行资源,从而执行并发。

java中实现多线程的方式:

1.Runnable接口
run(): 线程要执行的方法(代码),run结束,线程的生命周期也结束。
2.Thread类
Thread类式Runnable接口的子类。
方法:run()
start():是线程的启动方法。若需要JVM把当前类当作是一个线程,就必须要用本方法来启动线程。

注意
任何一个Java程序中,都至少有一个线程存在,这个线程由JVM创建,启动线程调用main函数,再执行main函数的代码。

猜你喜欢

转载自blog.csdn.net/weixin_41424635/article/details/88368571