exec:函数族
在一个进程里面执行另外一个文件(可执行文件):
int execl(cpnst char *path, const char *arg, /*(char *) NULL */);
参数:
path:要执行的可执行文件的路径和名称arg:执行该可执行文件时需要传递的参数
NULL:参数传递结束标志
返回值:
出错:-1
int execv(const char *path, char *const argv[]);
execlp :int execlp(const char *file const char *arg,/*(char *)NULL */);
功能:从PATH指定的系统路径下寻找该可执行文件
参数:file:需要执行的可执行文件的名称(系统路径下已有的文件)
arg:执行该可执行文件时需要传递的参数;
NULL:参数传递结束标志
int execvp(const char *file, char *const argv[]);eg.
线程:
1.什么是线程
轻量级的进程,可实现多任务的并发。
进程是操作系统资源分配的最小单位
线程是操作系统任务调度的最小单位
2.线程的创建
- 线程由某个进程创建。
进程创建线程时,会为其分配独立的(8M)栈区空间;
- 线程和所在进程,以及进程中的线程,公用线程的堆区,数据区,文本区
3.线程的调度
宏观并行,微观串行
4.线程消亡
1.线程退出
2.回收线程资源空间
5.进程和线程的区别
- 进程:进程是操作系统资源分配的最小单位;
资源消耗:
进程资源开销大,每次创建都需要有0-4G的虚拟内存空间。
效率角度:
由操作系统创建,创建时耗时比线程大;跨进程调度比线程调慢:
通信方面:
进程间不能直接通信,,需要使用进程间通信机制(IPC机制)
安全性角度:
进程安全性比线程高,各进程空间独立
- 线程:线程是操作系统任务调度的最小单位。
资源消耗:
资源开销较小,只需要所在进程为其开辟8M的栈区空间
效率角度:
由所在进程创建;跨进程调度比跨线程调度慢;
通信方面:
通信简单,可以使用线程共享的区域进行通信(比如全局变量)
安全性角度:
线程没有进程安全性好,,一个线程异常可能影响同一进程中的所有线程
1.线程的创建:pthreadcreate()
2.线程调度:由操作系统调度
3.线程消亡:
1.线程退出:pthread_exit();
2.线程回收:pthread_join();
评论前必须登录!
注册