多线程编程总结

来源:互联网 发布:数据分析师的前景 编辑:程序博客网 时间:2024/05/22 01:28

多线程编程总结

Unix下线程相关函数

  • pthread_create() 函数

    函数声明如下:
    int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict_attr, void *(*start_rtn)(void *), void *restrictarg);

    返回值:若成功则返回0,否则返回错误编号。

    参数说明:

    第一个参数:指向线程标识符的指针;第二个参数:用来设置线程属性;第三个参数:线程运行函数的起始地址;第四个参数:运行函数的参数。

    注意:由于pthread并非是Linux系统的默认库,故在编译时注意加上-lpthread参数,以调用静态链接库。

  • pthread_join() 函数

    函数声明:extern int pthread_join __P(pthread_t __th, void ** __thread_return);

    返回值:若成功则返回0,否则返回错误编号。

    参数说明:

    第一个参数:被等待的线程标识符;第二个参数:用户定义的指针,用来存储被等待线程的返回值。

    注意:它是一个线程阻塞等待的函数,调用它的函数将一直等待被等待的线程结束为止,当函数返回时,被等待的线程的资源被回收。

  • pthread_exit() 函数

    函数声明:void pthread_exit(void *rval_ptr);

    返回值:无

    参数说明:

    第一个参数:返回指向某个对象的指针。

    函数作用:终止调用它的线程,bong返回一个指向某个对象的指针。

  • pthread_cancel() 函数

    函数声明:int pthread_cancel(pthread_t thread);

    返回值:若成功返回0,否则返回非0值。

    参数说明:

    第一个参数:待取消线程的线程。
  • pthread_equal() 函数

    函数说明:int pthread_equal(pthread_t tid1, pthread_t tid2);

    返回值:如果相等返回非0,否则返回0。

    参数说明:

    第一个参数:线程1的线程ID;第二个参数:线程2的线程ID。
  • pthread_self() 函数

    函数说明:pthread_t pthread_self(void);

    返回值:调用线程的线程ID。

  • pthread_detach() 函数

    函数说明:int pthread_detach(pthread_t tid);

    返回值:若成功返回0,失败返回错误编号。

    参数说明:

    第一个参数:需要进入分离的线程ID。

    函数作用:是线程进入分离状态。

线程与进程原语比较

  • 进程原语/线程语言/描述

    fork / pthread_create / 创建新的控制流

    exit / pthread_exit / 从现有的控制流中退出

    waitpid / pthread_join / 从控制流中得到退出状态

    atexit / pthread_cancel_push / 注册在退出控制流时调用的函数

    getpid / pthread_self / 获取控制流的ID

    abort / pthread_cancel / 请求控制流的非正常退出

  • 参考文献

    http://blog.csdn.net/zhhxidian2005/article/details/5605404

原创粉丝点击