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

进程和线程

时间:2024-02-29 10:56:19浏览次数:19  
标签:线程 切换 寄存器 进程 共享内存 CPU

进程拥有资源,包括:内存空间中的代码、数据等;I/O 资源;打开文件;CPU等。

线程执行任务,线程只拥有CPU和少量寄存器,线程之间共享进程的资源。

为什么需要线程

进程切换开销大,主要包括:

  • CPU的上下文切换保存和恢复相关寄存器的内容
  • 进程相关的数据结构切换:页表、文件描述符、消息队列等.

线程切换只需要切换CPU上下文、不需要改变地址空间切换页表等。

线程优缺点

优点

  • 切换快
  • 共享内存,通信方便

缺点

  • 一个线程出错,进程终止。
  • 共享内存有并发问题。

线程的独占资源

  • 一组寄存器
  • 栈,每个线程有独立的栈
  • 错误返回码
  • 信号屏蔽码,每个线程感兴趣的信号不同

标签:线程,切换,寄存器,进程,共享内存,CPU
From: https://www.cnblogs.com/hellozhangjz/p/18042949

相关文章

  • 进程间通信-信号
    信号信号(signal)机制是Linux系统中最为古老的进程之间的通信机制。Linux信号也可以称为软中断,是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,进程不需要通过任何操作等待......
  • windows系统下 nssm 注册jar为windows服务并且守护进程
    1、下载nssmhttp://nssm.cc/download下载nssm2.24(2014-08-31)即可解压放在E:\nssm-2.242、新建启动jar脚本的bat文件D:\code2\1.bat内容是java-jarD:\code2\app.jar>log.log2>&1&\3、用nssm命令挂服务cdE:\nssm-2.24\win64nssminstallceshi"D:\code2\1.b......
  • C++ 多线程笔记1 线程的创建
    C++多线程笔记1线程的创建里面代码会用到的头文件#include<iostream>#include<string>#include<memory>#include<thread>#include<vector>#include<stdlib.h>#include<cmath>#include<chrono>#include<ctime>入门例子vo......
  • c++ queue在多线程中的使用
    queue队列,先进先出。多线程的一种使用案例:生产者每3spush一个元素消费者每5s才能pop一个元素(队首)那么,2个消费者就可以及时地消耗掉push的元素。#include<iostream>#include<thread>#include<mutex>#include<queue>std::queue<int>m_queue;std::mutexm_mutex;std:......
  • 突然新增进程
    在运行代码时top显示突然多了很多pid连续的新进程而我并没有显示的创建他们。最后找到问题:因为我使用了GridSearchCV但未设置n_jobs参数,因此GridSearchCV内部并行处理产生了大量新进程来处理不同的参数组合。n_jobs取值范围:**-1**:表示使用所有可用的CPU核心,即最大并......
  • FastAPI系列:后台任务进程
    注:后台任务应附加到响应中,并且仅在发送响应后运行用于将单个后台任务添加到响应中fromfastapiimportFastAPIfromfastapi.responsesimportJSONResponsefromstarlette.backgroundimportBackgroundTaskfrompydanticimportBaseModelapp=FastAPI()classUser(B......
  • 线程
    ##1.iOS中有多少类型的线程?*PThread:跨系统,对C语言的封装。很少使用,不推荐使用。*NSThread:面向对象,需要手动管理生命周期。*GCD:GrandCentralDispatch,主打任务与队列。*NSOperation&NSOperationQueue:基于GCD的封装,面向对象。##2.GCD有那些队列,默认提供那些队......
  • python中5种线程锁
    线程安全线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。线程安全的问题最主要还是由线程切换导致的,比如一个房间(进程)中有10颗糖(资源),除此之外......
  • linux进程操作
    linux进程操作查看用户进程top//查看系统中实时的进程信息htop//top的增强版,可以交互的方式显示系统中的进程信息ps //列出当前用户的所有进程信息pstree //以树形结构显示当前用户的而所有进程信息pidof //可以查找指定进程名的进程IDhtop安装:sudoapt-getinstallh......
  • Session 0 是一个特殊的会话(Session),用于运行系统级别的服务和进程,而不是用户交互式会
    在Windows操作系统中,Session0是一个特殊的会话(Session),用于运行系统级别的服务和进程,而不是用户交互式会话。在WindowsVista及更高版本的操作系统中,引入了“会话0隔离”(Session0Isolation)的概念,即将服务与用户会话分离开来,以提高系统的安全性和稳定性。Session0中运行的......