首页 > 系统相关 >进程与线程

进程与线程

时间:2023-11-19 22:31:58浏览次数:35  
标签:程序 指令 线程 内存 进程 加载

进程

  • 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在
  • 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的
  • 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。
  • 进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐、360 安全卫士等)

线程

  • 一个进程之内可以分为一到多个线程。
  • 一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行
  • Java 中,线程作为最小调度单位,进程作为资源分配的最小单位。 在 windows 中进程是不活动的,只是作为线程的容器

二者对比

  • 进程基本上相互独立的,而线程存在于进程内,是进程的一个子集
  • 进程拥有共享的资源,如内存空间等,供其内部的线程共享

进程间通信较为复杂

  • 同一台计算机的进程通信称为 IPC(Inter-process communication)
  • 不同计算机之间的进程通信,需要通过网络,并遵守共同的协议,例如 HTTP
  • 线程通信相对简单,因为它们共享进程内的内存,一个例子是多个线程可以访问同一个共享变量
  • 线程更轻量,线程上下文切换成本一般上要比进程上下文切换低

标签:程序,指令,线程,内存,进程,加载
From: https://blog.51cto.com/AmbitionGarden/8475924

相关文章

  • Java 多线程事务控制
    Java多线程怎么做事务控制公司业务中遇到一个需求,需要同时修改最多约5万条数据,而且还不支持批量或异步修改操作。于是只能写个for循环操作,但操作耗时太长,只能一步一步寻找其他解决方案。具体操作如下:一、循环操作的代码先写一个最简单的for循环代码,看看耗时情况怎么样。/......
  • 僵尸进程zombie讲解:
       ......
  • THM-核心Windows进程(Core Windows Processes)
    任务管理器使用任务管理器可以管理系统中常见的进程,以及进程的相关信息右键其中的名称或者PID等列选择列,可以选择一些平常看不到的信息,例如路径名称、命令行系统自带的任务管理器的功能是有限的,这里推荐使用方便查看的工具ProcessExplorer:https://learn.microsoft.com/e......
  • 性能测试---并发线程数&QPS&平均耗时&95分位耗时
    文章转发,原文来自:https://cloud.tencent.com/developer/article/1784548?ivk_sa=1024320u【概念解释】并发线程数:指的是施压机施加的同时请求的线程数量。比如,我启动并发线程数100,即我会在施压机器上面启动100个线程,不断地向服务器发请求。QPS:每秒请求数,即在不断向服务器发送请......
  • win10注册表的备份与恢复;对“未将所有数据都成功写入到注册表中。某些项是由系统或其
    为什么要备份注册表呢?现在网络上的软件下载渠道良莠不齐,一不小心就给你一个全家桶服务,而仅仅是通过控制面板将它们卸载是删不干净的,鬼知道它们在电脑的注册表上留下了什么。所以在从不知名网站下载一些软件之前,对注册表进行备份,若出了什么问题,事后对注册表进行恢复是最便捷的方式了......
  • 为什么在ASLR机制下DLL文件在不同进程中的加载基址相同?
    1. DLL注入实现以下是实现DLL注入的简要步骤:1.1打开VisualStudio,并创建一个新的DLL项目。1.2在"dllmain.cpp"添加以下的代码1//dllmain.cpp:定义DLL应用程序的入口点。2#include"pch.h"34BOOLAPIENTRYDllMain(HMODULEhModule,5......
  • 开发:uwsgi开多进程引发的LocMemCache的session冲突
    2023.11.18今天上线了新功能,其中一个具体的实现逻辑如下:使用request.session存储API的响应数据,确保会话会偶尔正确地保存并在需要时能够正确地读取数据。predict.py--通过sessions存储all_response_data再重定向对predicted_results页面传递api返回的值ifresponse_sta......
  • c++线程专题
    逐步更新中~~~,参考书籍《C++并发编程实战(第2版)》,不照搬书,只写理解感悟。引入头文件#include<thread>线程启动std::threadt(my_func);若需等待线程执行完毕,才继续之后的代码,用joinif(t.joinable()){t.join();}若不等待,可以分离出去(分离出去的线程被称为守护......
  • 常见面试题-Netty线程模型以及TCP粘包拆包
    介绍一下Netty使用的线程模型?答:Netty主要基于主从Reactor多线程模型,其中主从Reactor多线程模型将Reactor分为两部分:mainReactor:监听ServerSocket,用来处理网络IO连接建立操作,将建立的SocketChannel指定注册给subReactorsubReactor:和建立起来的socket做数据交互和......
  • python 根据绝对路径关闭进程
    importosimportpsutil#如果未知路径且写入了配置环境#os.system("taskkill/f/imexcel.exe&taskkill/f/imwps.exe")#cmdtaskkill直接输入不需加双引号#cmdtaskkill无法根据绝对路径关闭程序无论有没有双引号(无效查询或没有找到进程)#True,False,N......