Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
  • 进程管理

    • 进程
      • 进程状态
      • 进程通信方式
      • 一个进程可以创建多少个线程?
    • 线程
  • 内存管理

  • 网络系统

  • 调度算法

  • 文件系统

  • 如何终止8080端口
  • 操作系统
  • 进程管理
Nreal
2023-11-24
目录

进程

# 进程状态

  • 运行态:占用CPU;
  • 就绪态:CPU时间片分给其它进程,本进程暂时停止运行;
  • 阻塞态:进程登台某一事件发生(如等待输入/输出操作完成)而暂时停止运行,即使拥有CPU控制权也无法运行;
  • 创建状态:进程新被创建状态;
  • 结束状态:进程销毁后的状态;

# 进程通信方式

  1. 管道

    半双工通信方式,数据只能一个方向上流动;

    效率低,不适合频繁交换数据;

    进程两个文件描述符,一进一出;

  2. 信号

    异步通信方式;

    可以用于用户空间进程和内核进程之间交互;

  3. 消息队列

    保存在内核的消息链表;

    每个消息指定特定的消息类型,接收的时候不需要按照队列次序,而是可以根据自定义条件接收特定类型的消息;

  4. 共享内存

    共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问;

  5. 信号量

    信号量本质上是一个计数器,它和管道有所不同,它不以传送数据为主要目的,主要作为进程之间及同一种进程的不同线程之间的同步和互斥手段,它常作为一种锁机制,可以用来控制多个进程对共享资源的访问;

    原理:PV操作

  6. socket

# 一个进程可以创建多少个线程?

一个进程的虚拟内存是4G,内核分走1G,留给用户3G,创建一个线程10M内存,最多可以创建300个线程;

线程

线程→

Theme by Vdoing | Copyright © 2021-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式