线程初识
线程的概念
注: 1,posix线程是一套标准吗,而不是实现
2.线程标识: phread_t,可能是整形也可能是结构体指针等
*简单介绍关于线程标识的函数*
*pthread_equarl() ;判断两个线程标识是否相等*
*pthread_self();返回自身的线程标识*
线程的创建
- pthread_creat();
线程的调度取决于调度器策略
# include<stdlib.h>
# include<pthread.h>
static void* func(void* p)
{
puts("thread is working");
return NULL;
}
int main()
{
pthread_t tid;
int err;
puts("begin!");
err = pthread_create(&tid,NULL,func,NULL);
if(err)
{
exit(-1);
}
puts("end!");
exit(0);
}
线程的终止
线程退出函数
线程标识的比较
线程的取消:
当不关心线程的返回信息时可以直接使用线程分离函数进行回收
反之,需要获取线程的返回值时,可以使用线程等待
线程等待
注意:
线程分离
默认情况下,新创建的线程是joinable的,线程退出后,需要对其进行pthread_join操作,否则无法释放资源,从而造成系统泄漏
如果不关心线程的返回值,join是一种负担,这个时候,我们可以告诉系统,当线程退出时,自动释放线程资源
注: