小工具知识网

当前位置: 首页 > 行业知识 > 进程与线程之线程

行业知识

进程与线程之线程

2026-10-31 11:04:57 来源:互联网转载

首先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 

 

上一篇:建设银行信用卡注销全攻略,轻松解除信用卡,步步为营!

下一篇:轻松更新WordPress主题指南