Windows技术篇——进程、线程、消息机制进程间通信[通俗易懂]

Windows技术篇——进程、线程、消息机制进程间通信[通俗易懂]概念192.168.0.1–192.168.0.255一、进程状态1、创建状态:进程由创建而产生。2、就绪状态:指进程已准备好运行状态,即进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,合可立即执行。(有执行资格,没有执行权的进程)3、运行状态:指进程已经获取CPU,其进程处于正在执行的状态。(既有执行资格,又有执行权的进程)4、阻塞状态:指正在执行的进程由于发生某事件(如…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

概念

192.168.0.1–192.168.0.255

一、进程状态

1、创建状态:进程由创建而产生。
2、就绪状态:指进程已准备好运行状态,即进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,合可立即执行。(有执行资格,没有执行权的进程)
3、运行状态:指进程已经获取CPU,其进程处于正在执行的状态。(既有执行资格,又有执行权的进程)
4、阻塞状态:指正在执行的进程由于发生某事件(如I/O请求,申请缓冲区失败等)暂时无法继续执行的状态,即进程执行受到阻塞。
5、终止状态:进程的终止也要通过两个步骤:首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返还给操作系统。

二、为何阻塞状态和就绪状态分开?

看定义可知

三、线程

是进程的一个执行单元,是进程内部调试的实体,比进程更小的独立运行的基本单位,线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。

四、为什么会有线程?

早期:在OS中一直都是以进程作为能拥有资源和独立运行的基本单位.后来人们又提出了比进程更小的能独立运行的基本单位-线程(Threads),试图通过它来提高系统内程序并发执行的程序,从而进一步提高系统的吞吐量.后来多处理机系统得到迅速发展,线程能比进程更好的提高程序的并发执行程序,充分发挥多处理机的优越性。

五、进程线程的区别?

地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、CPU等,但是进程之间的资源是独立的。
执行过程:每个独立的进程有一个程序运行的入口,顺序执行序列和程序入口,但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。线程是处理器调试的基本单位,但是进程不是。两者均可并发执行。

六、线程进程优缺点?

线程执行开销小,但是不利于资源的管理和保护,线程适合在SMP机器(双CPU系统)上运行;
进程执行开销大,但是能够很好的进行资源管理和保护,进程可以跨机器前移。

对资源的管理和保护要求高,不限制开销和效率时,使用多进程;
要求效率高,频繁切换时,资源的保护管理要求不是很高的时候,使用多线程;

八、多线程应用场景

常见浏览器、Web服务、Web请求、各种专用服务器(游戏服务器);
Servlen多线程、FTPd下载、多线程操作文件、数据库用到多线程;
分布式计算(tomcat内部采用多线程)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170948.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言之malloc函数「建议收藏」

    C语言之malloc函数「建议收藏」【FROMMSDN&&百科】原型:  void*malloc(unsignedintsize);#include或#includemalloc的全称是memoryallocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。malloc向系统申请分配指定size个字节的内存空间(连

    2022年5月26日
    40
  • java arraylist遍历_java 遍历arrayList的四种方法

    java arraylist遍历_java 遍历arrayList的四种方法importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassArrayListDemo{publicstaticvoidmain(Stringargs[]){Listlist=newArrayList();list.add(“luojiahui”);list.add(“…

    2022年7月22日
    7
  • Netty权威指南_netty编程实战

    Netty权威指南_netty编程实战2.1BIO采用BIO通信模型的服务器,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行处理,处理完成后,通过输出流返回应答给客户端,线程销毁。graphTDA1[Client]–>|读/写|B(Acceptor线程)A2[Client]–>|读/写|BA3[Client]–>|读…

    2022年9月28日
    1
  • Eureka原理理解和Eureka集群搭建

    Eureka原理理解和Eureka集群搭建简介Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。springcloud框架集成了Eureka,在微服务架构中充当注册中心的角色,方便管理各种微服务。Eureka原理Eureka分为EurekaServer和EurekaClient及服务端和客户端。EurekaServer为注册中心,是服务端,而服务提供者和消费者即为客户端,消费者也可以是服…

    2022年6月6日
    34
  • 投影矩阵详解「建议收藏」

    投影矩阵详解「建议收藏」视锥就是场景中的一个三维空间,它的位置由视口的摄像机来决定。这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。对于透视投影,视锥可以被初始化成金字塔形,将摄像机放在顶端。这个金字塔再经过前、后两个剪切面的分割,位于这两个面之间的部分就是视锥。只有位于视锥内的对象才可见。视锥由凹视野(  在

    2022年10月4日
    0
  • scope 前缀开头的方法

    scope 前缀开头的方法

    2021年11月7日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号