|你应该知道的C / C ++中的线程函数


|你应该知道的C / C ++中的线程函数
文章图片
|你应该知道的C / C ++中的线程函数
文章图片
|你应该知道的C / C ++中的线程函数
文章图片
|你应该知道的C / C ++中的线程函数
文章图片
|你应该知道的C / C ++中的线程函数
文章图片
|你应该知道的C / C ++中的线程函数
在Unix / Linux操作系统中 , C / C ++语言为所有与线程相关的功能提供POSIX线程(pthread)标准API(应用程序接口) 。 它允许我们为并发流程创建多个线程 。 但是我们必须在脚本的开头包含pthread.h头文件 , 才能使用pthreads库的所有功能 。 要执行c文件 , 我们在编译文件时必须在命令行中使用-pthread或-lpthread 。





该功能在所定义的pthread库包括:
1.pthread_create:用于创建新线程句法:


参数:
【|你应该知道的C / C ++中的线程函数】thread:指向无符号整数值的指针 , 该整数值返回创建的线程的线程ID 。
attr:指向用于定义线程属性(如分离状态 , 调度策略 , 堆栈地址等)的结构的指针 。 对于默认线程属性 , 设置为NULL 。
start_routine:指向线程执行的子例程的指针 。 子例程的返回类型和参数类型必须为void * 。 该函数具有单个属性 , 但是如果需要将多个值传递给该函数 , 则必须使用结构 。
arg:指向void的指针 , 该指针包含先前参数中定义的函数的参数
2.pthread_exit:用于终止线程句法:


参数:此方法接受强制参数retval , 该参数是指向存储终止线程的返回状态的整数的指针 。 此变量的范围必须是全局的 , 以便任何等待加入该线程的线程都可以读取返回状态 。
3.pthread_join:用于等待线程终止 。


参数:此方法接受以下参数:
th:当前线程正在等待的线程的线程ID 。
thread_return:指向th中提到的线程的退出状态存储位置的指针 。
4.pthread_self:用于获取当前线程的线程ID 。


5.pthread_equal:比较两个线程是否相同 。 如果两个线程相等 , 则该函数返回一个非零值 , 否则返回零 。


参数:此方法接受以下参数:
第一个线程的线程ID
第二个线程的线程ID
6.pthread_cancel:用于向线程发送取消请求