进程与线程

简介: 进程与线程

进程概念:

程序:存放在磁盘上的指令和数据的有序集合(文件)静态

进程:执行一个程序所分配的资源的总称,进程是程序的一次执行过程

进程是动态的,包括创建,调度,执行和凋亡。

 

内存:代码段,数据段,bss段(程序) 堆,栈,进程控制块

进程在RAM中  程序在FLash中

进程类型:

交互类型:在shell下启动  以在前台运行,也可以在后台运行

批处理进程:与终端无关,被提交到一个作业队列中以便顺序执行

守护进程:和终端无关,,一直在后台运行

进程状态:运行态 可中断等待 不可中断等待 停止态,僵尸态 ,进程占用cpu

在linux下命令:

ps:快照

查看进程:ps -elf |grep 进程名 可以查看进程的PID号

程序运行时:ctrl+z将运行的前台进程转为后台进程转为后台进程并停止(挂起)

ctrl+c :将前台进程关闭

直接后台运行程序:./程序名 &

jobs 查看后台进程  bg+PID将挂起的进程在后台运行 fg+PID把后台的进程放到前台运行

创建子进程:

 

pid_t fork(void) 创建新的进程 失败返回-1

成功时父进程返回子进程的进程号,子进程返回0

通过fork的返回值区分父进程和子进程

例如:进程A  fork()之后产生子进程B

A和B代码一样,但是B只执行fork()之后的代码

父进程中代码可以在 if(pit>0)中编写

子进程可以在else if(pit==0)中编写

父子进程的执行顺序不确定 操作系统规定

子进程继承父进程内容 ,父子进程有独立的地址快捷键 互不影响

若父进程先结束,子进程成为孤儿进程,被init进程收养 子进程变成后台进程

若子进程先结束:父进程没有及时回收,子进程会变成僵尸进程。

后续更新线程!

目录
相关文章
聊聊python多线程与多进程
为什么要使用多进程与多线程呢? 因为我们如果按照流程一步步执行任务实在是太慢了,假如一个任务就是10秒,两个任务就是20秒,那100个任务呢?况且cpu这么贵,时间长了就是浪费生命啊!一个任务比喻成一个人,别个做高铁,你做绿皮火车,可想而知!接下来我们先看个例子:
|
4天前
|
数据采集 存储 C++
单线程 vs 多进程:Python网络爬虫效率对比
本文探讨了Python网络爬虫中的单线程与多进程应用。单线程爬虫实现简单,但处理速度慢,无法充分利用多核CPU。而多进程爬虫通过并行处理提高效率,更适合现代多核架构。代码示例展示了如何使用代理IP实现单线程和多进程爬虫,显示了多进程在效率上的优势。实际使用时还需考虑代理稳定性和反爬策略。
单线程 vs 多进程:Python网络爬虫效率对比
|
5天前
|
存储 调度
进程与线程(概念、并行、并发)
进程与线程(概念、并行、并发)
|
5天前
|
安全 Java
多线程(CAS, ABA问题, Runnable & Callable & 僵尸线程 & 孤儿进程)
多线程(CAS, ABA问题, Runnable & Callable & 僵尸线程 & 孤儿进程)
14 1
|
6天前
|
消息中间件 Java 调度
Java多线程基础-3:进程与线程间的区别的联系
进程是操作系统中运行的应用程序,具有独立内存空间,包含代码、数据和堆栈,是资源分配的最小单位,而线程是CPU调度的最小单位,是进程内的执行任务,多个线程可共享进程资源。
17 0
|
6天前
|
IDE Java 开发工具
"如何使用 jconsole 查看Java进程中线程的详细信息? "
当Java程序运行时,其中的一些线程也正在执行。我们可以用第三方工具 jconsole 来查看Java进程中线程的执行情况和详细信息,这有助于我们对多线程编程的理解。
13 0
|
6天前
|
消息中间件 Java C++
"Java多线程基础-2:简介虚拟地址空间——保障进程间独立性的机制 "
如何保障进程之间这样的独立性?操作系统采用了“虚拟地址空间”的方式。
12 0
|
6天前
|
存储 Java 调度
Java多线程基础-1:通俗简介操作系统之进程的管理与调度
操作系统是一个复杂的软件,具备许多功能。其中,进程的管理与调度是与我们密切相关的。本文将对操作系统功能中进程管理与调度作出介绍。
18 0
|
9天前
|
调度
进程和线程的区别和联系
进程和线程的区别和联系
15 0
|
9天前
|
算法 调度
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
23 3