linux线程

概念

1.线程是程序的执行路线,也就是进程的子任务。
2.线程可以任务是轻量级的进程,不拥有自己独立的内存资源,共享进程的代码区,数据区,堆区,环境变量,文件描述符,信号处理函数,当前目录,用户id和组id等资源。
3.线程拥有自己独立的栈。
4.一个进程可以拥有多个线程,且至少有一个主线程。

常用函数

#include 

//创建线程
int pthread_create (
	pthread_t* restrict thread,		//线程id
    const pthread_attr_t* restrict attr,	//线程属性
    void* (*start_routine) (void*),			//线程过程函数指针
    void* restrict arg						//传递给线程过程函数的参数
);

//等待线程,回收线程资源
int pthread_join (pthread_t thread, void** retval);
//thread : 线程id
//retval : 线程函数返回值,用指针进行保存

//线程分离
int pthread_detach (pthread_t thread);
//线程分离后无需,再通过pthread_join等待线程结束,会在其结束时自动释放资源。

//获取线程id
pthread_t pthread_self (void);


//比较两个线程,通过线程id
int pthread_equal (pthread_t t1, pthread_t t2);

//终止线程
void pthread_exit (void* retval);

//取消线程
int pthread_cancel (pthread_t thread);
//

你可能感兴趣的:(linux,线程)