多线程的那些事(1)进程和线程是什么

本文详细介绍了多线程的使用背景,深入解析了进程与线程的概念,包括进程的三种状态(运行、阻塞、就绪)以及线程的四种状态。还探讨了进程间通信的多种方法,如管道、信号、消息队列等,并提到了Java中线程的创建、状态转换及常用方法。此外,文章讨论了进程和线程的联系与区别,并给出了衡量并行效果的加速比概念。
摘要由CSDN通过智能技术生成

0 为什么使用多线程

       实际上,操作系统的多进程实现了多任务并发执行,程序的多线程实现了进程的并发执行。多任务、多进程、多线程的前提都是要求操作系统提供多任务、多进程、多线程的支持。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。

        那么何时会用到多线程呢?大多情况下,要用到多线程的主要是需要处理大量的IO操作或处理数据需要花大量的时间等,比如:读写文件、遥感数据的接收、处理、显示、保存等。

1 进程和线程

1.1 进程Process

1.1.1 什么是进程

        进程是操作系统中对正在运行程序的一个抽象。一个进程是某类型的一个活动,它有程序、输入、输出以及状态。单个处理器可以被若干进程共享,它使用某种调度算法决定何时停止一个进程的工作,并转而为另一个进程提供服务。进程可以分2种类型:

1)前台进程:同用户交互并且替他们完成工作的那些进程。

2)后天进程(守护进程daemon):与特定的用户没用关系,具有某些专门功能的进程,如邮件后台定时检查是否有新邮件的进程。

进程与程序

1)程序是计算机指令的集合,它以文件的形式存储在磁盘上。
      进程是一个程序在其自身的地址空间中的一次执行活动。
2)进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;

     程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占用系统的运行资源。

1.1.2 进程状态

    进程有三种状态:运行、阻塞、就绪。


1)运行:该时刻进程实际占用COU。当一个进程在处理机上运行时,则称该进程处于运行状态。

2)阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

3)就绪:可运行,但因为其他进程正在运行而暂时停止。当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。

       对于一个实际的系统,进程的状态及其转换更为复杂。引入新建态终止态构成了进程的五态模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值