pthread.h 线程部分 源码解读

int pthread_create (pthread_t *__restrict __newthread,
			   const pthread_attr_t *__restrict __attr,
			   void *(*__start_routine) (void *)

创建线程

void pthread_exit (void *__retval)

退出线程

int pthread_join (pthread_t __th, void **__thread_return)

等待线程结束

int pthread_tryjoin_np (pthread_t __th, void **__thread_return)

尝试等待线程结束

int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
				 const struct timespec *__abstime);

在指定的时间内等待线程的结束

int pthread_detach (pthread_t __th)

分离线程

pthread_t pthread_self (void)

获得当前线程的identity

int pthread_equal (pthread_t __thread1, pthread_t __thread2)

判断两个线程 identity 是否相同

int pthread_attr_init (pthread_attr_t *__attr)

初始化一个线程属性

int pthread_attr_destroy (pthread_attr_t *__attr)

销毁一个线程属性

int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
					int *__detachstate)

获得线程identity 的 detach 状态

int pthread_attr_setdetachstate (pthread_attr_t *__attr,
					int __detachstate)

设置线程identity 的 detach 状态

int pthread_attr_getguardsize (const pthread_attr_t *__attr,
				      size_t *__guardsize)

获得线程属性 的 溢出守护区域 大小

int pthread_attr_setguardsize (pthread_attr_t *__attr,
				      size_t __guardsize)

设置线程属性 的 溢出守护区域大小

int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
				       struct sched_param *__restrict __param)

获得线程属性 调度参数

int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
				       const struct sched_param *__restrict
				       __param)

设置线程属性 调度参数

int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
					__attr, int *__restrict __policy)

获得线程属性 调度策略

int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)

设置线程属性 调度策略

可以获得和设置的属性
inheritsched		继承的
scope				范围
stackaddr			栈地址
stacksize			栈大小
		
int pthread_getattr_default_np (pthread_attr_t *__attr)

获得 默认的线程属性

int pthread_setattr_default_np (const pthread_attr_t *__attr)

设置 默认的线程属性

int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)

使用当前已经在运行的一个线程去初始化一个 线程属性。即获得该线程使用的线程属性。

int pthread_setschedparam (pthread_t __target_thread, int __policy,
				  const struct sched_param *__param)

设置调度策略参数

int pthread_getschedparam (pthread_t __target_thread,
				  int *__restrict __policy,
				  struct sched_param *__restrict __param)

获得调度策略属性

int pthread_setschedprio (pthread_t __target_thread, int __prio)

为指定的线程设置 优先级

int pthread_getname_np (pthread_t __target_thread, char *__buf,
			       size_t __buflen)

获得线程内部的 别名

int pthread_setname_np (pthread_t __target_thread, const char *__name)

设置线程内部的 别名

int pthread_getconcurrency (void)

获得并发性等级

int pthread_setconcurrency (int __level)

设置并发性等级

int pthread_yield (void)

产生一个线程给另外一个 线程或者进程去使用

int pthread_once (pthread_once_t *__once_control,
			 void (*__init_routine) (void))

保证使用同一个once_control 标记的 init_routine 函数,在多线程调用该函数的时候只会执行一次

int pthread_setcancelstate (int __state, int *__oldstate);

为当前线程设置可撤销的状态

int pthread_setcanceltype (int __type, int *__oldtype);

为当前线程设置可撤销的类型

int pthread_cancel (pthread_t __th);

立刻撤销指定的线程或者等到下次 可撤销的状态

void pthread_testcancel (void);

尝试撤销当前的线程

猜你喜欢

转载自blog.csdn.net/weixin_40021744/article/details/87624110
今日推荐