关于进程及线程

什么是进程?

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

进程在内存中,运行的所有操作指令在CPU上执行。运行程序时,进程向操作系统提交请求,请求操作系统分配资源。操作系统根据进程所需要分配资源。进程再管理这些资源。

什么是线程?

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

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

线程执行时,需要消耗CPU、高速缓存、内存等硬件资源。但线程不管理内存。内存及其它硬件资源都由进程管理。

进程中的内存资源,会被所有线程共用。

线程任务执行完毕后,要释放线程。

线程运行时,所需的数据会被缓存再高速缓存中,等到线程结束,数据会返回内存中。

进程和线程的区别

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

什么是多线程?

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

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

java中实现多线程的方式:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值