目录

进程与线程之线程

首先exec函数族是进程中的常用函数,可以利用另外的进程空间执行不同的程序,在之前的fork创建子进程中会完全复制代码数据段等,而exec函数族则可以实现子进程实现不同的代码

int execl(const char *path, const char *arg, ...

/* (char *) NULL */);

int execlp(const char *file, const char *arg, ...

/* (char *) NULL */);

int execle(const char *path, const char *arg, ...

/*, (char *) NULL, char * const envp[] */);

int execv(const char *path, char *const argv[]);

int execvp(const char *file, char *const argv[]);

int execvpe(const char *file, char *const argv[],

char *const envp[]);

功能:

利用进程空间执行另外一份代码

l:参数以列表形式传递

v:参数以指针数组形式传递

e:更新环境变量

p:在系统指定目录下查找文件
getenv

char *getenv(const char *name);

功能:

获得环境变量名对应的值

setenv

int setenv(const char *name, const char *value, int overwrite);

功能:

设置环境变量的值

参数:

name:环境变量名

value:环境变量的值

overwrite:非0 覆盖

0 不覆盖

返回值:

成功返回0

失败返回-1
1.基本概念:

线程:线程是一个轻量级的进程,位于进程空间内部,一个进程中可以创建多个线程

2.线程创建:

线程独占栈空间,文本段、数据段和堆区与进程共享

3.线程调度:

与进程调度是一样的

宏观并行,微观串行

4.线程消亡:

与进程消亡是一样的
5.进程和线程的区别:

进程是操作系统资源分配的最小单元

线程是CPU任务调度的最小单元

6.多进程和多线程的优缺点:

效率:多线程 > 多进程

多线程只需在同一进程空间内切换

多进程需要在不同的空间中切换

通信:多线程 > 有进程

线程共享全局变量,可以通过全局变量实现数据通信

进程空间是独立的,没有共享空间,通信实现比较复杂

通信实现:多进程 > 多线程

线程共享空间操作时会引发资源竞争

进程没有共享空间,不存在资源竞争的问题

安全:多进程 > 多线程

一个进程异常不会影响其余进程空间

一个线程异常结束会导致进程异常结束,进程异常结束,该进程内所有线程任务均无法向下执行
7.线程相关的函数接口:

创建: fork pthread_create

退出: exit pthread_exit

回收: wait pthread_join

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Captaincc22 分钟前
这款堪称编程界的“自动驾驶”利器,集开发、调试、提 PR、联调、部署于一体
前端·ai 编程
我是小七呦32 分钟前
万字血书!TypeScript 完全指南
前端·typescript
simple丶35 分钟前
Webpack 基础配置与懒加载
前端·架构
simple丶40 分钟前
领域模型 模板引擎 dashboard应用列表及配置接口实现
前端·架构
冰夏之夜影41 分钟前
【css酷炫效果】纯css实现液体按钮效果
前端·css·tensorflow
42 分钟前
告别手写Codable!Swift宏库ZCMacro让序列化更轻松
前端
等猪的风42 分钟前
centos 磁盘重新分割,将原来/home 下部分空间转移到 / 根目录下
linux·运维·centos
摘笑1 小时前
vite 机制
前端
生活百般滋味,人生需要笑对。 --佚名1 小时前
linux按照nginx
linux·服务器·nginx
Channing Lewis2 小时前
API 返回的PDF是一串字符,如何转换为PDF文档
前端·python·pdf