首页 > 系统相关 >多并发进程

多并发进程

时间:2024-08-28 10:24:04浏览次数:17  
标签:UID PID 并发 GID 信号 进程 复刻

1. 基本概念

  • 程序:编译后产生的,格式为ELF的,存储于硬盘的文件
  • 进程:程序中的代码和数据,被加载到内存中运行的过程
  • 程序是静态的概念,进程是动态的概念

2. 进程的复刻(fork)

  • 一个进程复刻一个子进程的时候,会将自身几乎所有的资源复制一份,具体如下
  • 父子进程的以下属性在创建之初完全一样:
  1. A) 实际UID和GID,以及有效UID和GID。
  2. B) 所有环境变量。
  3. C) 进程组ID和会话ID。
  4. D) 当前工作路径。
  5. E) 打开的文件。
  6. F) 信号响应函数。
  7. G) 整个内存空间,包括栈、堆、数据段、代码段、标准IO的缓冲区等等。
  • 而以下属性,父子进程是不一样的:
  1. 进程号PID。PID是身份证号码,哪怕亲如父子,也要区分开。
  2. 记录锁。父进程对某文件加了把锁,子进程不会继承这把锁。
  3. 挂起的信号。这是所谓“悬而未决”的信号,等待着进程的响应,子进程不会继承这些信号。

3. 进程的状态

进程是动态的活动的实体,因此会有很多种运行状态:一会儿睡眠、一会儿暂停、一会儿又继续执行。下图给出Linux进程从被创建(生)到被回收(死)的全部状态,以及这些状态发生转换时的条件:

标签:UID,PID,并发,GID,信号,进程,复刻
From: https://blog.csdn.net/Cpingan1/article/details/132676199

相关文章

  • [Java并发]Semaphore
    Semaphore是一种同步辅助工具,翻译过来就是信号量,用来实现流量控制,它可以控制同一时间内对资源的访问次数.无论是Synchroniezd还是ReentrantLock,一次都只允许一个线程访问一个资源,但是Semaphore可以指定多个线程同时访问某一个资源.Semaphore有一个构造函数,可以传入一个int型......
  • 大厂员工,手把手教你开发一个高并发、高可用的营销活动
    前言这几年工作中做过不少营销活动,无论是电商业务、支付业务、还是信贷业务,营销在整个业务发展过程中都是必不可少的。如果前期营销宣传到位,会给业务带来一波不小的流量。那么作为技术,如何接住这波流量,而不是服务被打挂。今天大厂员工,手把手教你开发出一个高并发、高可用的营销活......
  • TCP并发服务器多线程和多进程方式以及几种IO模型
    1.阻塞I/O(BlockingI/O)在阻塞I/O模型中,当应用程序发起I/O操作时,整个进程会被阻塞,直到操作完成。在这个过程中,应用程序无法执行其他任务,必须等待I/O操作的完成。特点:简单性:编程简单,逻辑清晰,容易理解和实现。低效性:在高并发场景下,由于每个I/O操作都会阻塞整个进程,资......
  • Android开发 - IInterface 接口 Binder 机制跨进程通信 (IPC)解析
    什么是IInterfaceIInterface一个接口,用于跨进程通信(IPC)。有时需要让一个应用程序与另一个应用程序或服务进行通信。这些应用程序可能运行在不同的进程中,使用Binder机制来实现这种通信,而IInterface就是Binder机制的一部分简单来说,IInterface是一个基础接口,它为跨......
  • Linux进程管理——进程状态、僵尸进程、孤儿进程、系统中断
    目录1.基础1.1什么是进程1.2程序和进程的区别1.3进程的生命周期1.3.1进程生命周期图1.3.2进程生命流程说明1.4僵尸进程与孤儿进程区别2.监控进程状态2.1静态查看进程2.1.1ps命令2.1.2STAT状态含义2.2动态查看进程2.2.1top命令2.2.2top常用按键显示介绍2.2.3top每列含义详解2.2.4什......
  • 10W级并发Mysql优化
    批量插入(BatchInsert)批量处理:将多条数据合并成一个INSERT语句,一次性批量插入。这样可以显著减少数据库的交互次数,提高性能。INSERTINTOyour_table(column1,column2,...)VALUES(value1,value2,...),(value3,value4,...)批量大小:通常建议每批次的大小在几百到几......
  • 【编程规范具体案例(基于Qt、微软、谷歌和AUTOSAR C++14 参考)】 C++ 编码规范 之并发篇
    目录标题并发目录12.并发编程规范12.1线程创建与管理规则12.1.1\[必须]明确定义线程的生命周期管理策略12.1.2\[必须]为关键线程设置明确的标识符12.1.3\[必须]在多线程环境中安全地处理异常12.2线程同步规则12.2.1\[必须]使用线程安......
  • 【Linux】进程概念
        ......
  • 【JUC并发编程系列】深入理解Java并发机制:CAS算法与原子类在Java中的实践应用(二、CAS
    文章目录【JUC并发编程系列】深入理解Java并发机制:CAS算法与原子类在Java中的实践应用(二、CAS)1.同步之原子类(Atomic类)2.使用atomicInteger计数3.使用atomicInteger底层原理3.compareAndSet原理分析3.1手写AtomicInteger3.2手写Lock锁3.3CASaba的问题3.4Atomic......
  • 【JUC并发编程系列】深入理解Java并发机制:从用户态到内核态的探索(一、前置知识)
    文章目录【JUC并发编程系列】深入理解Java并发机制:从用户态到内核态的探索(一、前置知识)1.用户态与内核态区别2.线程安全同步的方式3.传统锁有哪些缺点4.发生CPU上下文切换的原因5.如何避免上下文切换6.详细总结6.1用户态与内核态6.2线程安全同步方式6.3传统锁的......