美文网首页
多线程编程API

多线程编程API

作者: 小pb | 来源:发表于2019-11-04 09:57 被阅读0次

创建线程和结束线程

1. pthread_create
创建一个线程的函数是pthread_create,定义如下:

#include <pthread.h>

// pthread是新线程的标识符,后续pthread_*函数通过他来引用新线程。
// attr 表示线程属性,attr == NULL时时默认属性。
// start_routin和arg分别表示新线程将运行的函数和参数。
int pthread_create(pthread_t* thread, const pthread_attr_t* attr,
                   void*(*start_routine)(void*), void* arg);

#include <bits/pthreadtypes.h>
typedef unsigned long int pthread_t;

pthread_create 成功返回0,失败返回错误码。

2.pthread_exit
线程一旦被创建好,内核就可以通过调度内核线程来执行start_routine函数指针所指向的函数了。线程在结束时,最好调用如下函数,保证线程的安全退出。

    #include <pthread.h>

    void pthread_exit(void * retval);

pthread_exit 函数通过retval 参数向 线程的回收者传递其退出信息。它执行完之后不会回到调用者,而且永远不会。

3. pthread_join
一个进程中的所有线程都可以调用pthread_join函数来回收其他线程。即等待其他线程退出。这类似于回收进程的wait操作。

  #include <pthread.h>
  int pthread_join(pthread_t pthread, void** retval);

该函数被一直阻塞,直到目标线程被回收为止。

4.pthread_cancel
有时我们希望
异常终止**一个线程,即取消线程。它是通过:

  int pthread_cancel(pthread_t  thread);

thread是线程描述符。
成功时返回0,失败则返回错误码。是否可以取消根据线程的属性来进行判断。

线程属性

pthread_attr_t 结构体定义了一套完整的线程属性。

  #include <bits/ pthreadtypes.h>
  #define __SIZEOF_PTHREAD_ATTR_T 36 
  typedef union {
      char __size[__SIZEOF_PTHREAD_ATTR_T];
      long int __align;
  } pthread_attr_t;

这个结构中我们可以看到,线程的各种属性都包含在一个字符数组中。线程库有一系列的函数来操作 pthread_attr_t 类型的变量。

相关文章

  • 多线程编程API

    创建线程和结束线程 1. pthread_create创建一个线程的函数是pthread_create,定义如下:...

  • iOS多线程

    多线程方案对比 技术方案简介编程语言线程生命周期使用频率pthread一套通用的多线程API适用于Unix、Lin...

  • 多线程编程

    多线程编程之Linux环境下的多线程(一)多线程编程之Linux环境下的多线程(二)多线程编程之Linux环境下的...

  • iOS GCD详解(信号量)

    GCD是苹果对多线程编程做的一套新的抽象基于C语言层的API,结合Block简化了多线程的操作,使得我们对线程操作...

  • Scheduler(一)

    1.Scheduler 的 API 在响应式编程中,如果想给Observable操作符链添加多线程功能,可以指定操...

  • JavaWeb开发必会技能

    Ø熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(...

  • iOS多线程

    多线程编程

  • Python 并行编程

    多线程编程 Python 主要提供了包括thread、threading、Queue等多线程编程模块。thread...

  • iOS 多线程编程 教程收录

    iOS多线程编程

  • GCD多线程编程常用API介绍

    什么是GCD? Grand Central Dispatch(GCD)是苹果开发的一项技术,用于提升应用在多核处理...

网友评论

      本文标题:多线程编程API

      本文链接:https://www.haomeiwen.com/subject/kvshbctx.html