云计算百科
云计算领域专业知识百科平台

exec族函数与线程

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();

赞(0)
未经允许不得转载:网硕互联帮助中心 » exec族函数与线程
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!