线索管理 (Thread Management) BACKWARDFORWARD


int pthread_create( pthread_t *thread,
       const pthread_attr_t *attr = NULL,
       void *(*entry)(void *), void *arg );
  创建一个新的执行线索。
  错误  EAGAIN,EINVAL
  注意  每个进程中线索的最大数PTHREAD_THREADS_MAX

int pthread_detach( pthread_t thread );
  给指定的线索设置状态PTHREAD_CREATE_DETACHED
  错误  EINVAL,ESRCH

pthread_t pthread_self( void );
  返回正调用线索的ID。
  错误  没有

int pthread_equal( pthread_t t1, pthread_t t2 );
  比较两个线索的ID相等。     
  错误  没有

void pthread_exit( void *status = NULL );
  结束正调用的线索。    
  错误  没有

int pthread_join( pthread_t thread, void **status = NULL);
  和一个线索的结束同步。     
  错误  EINVAL,ESRCH,EDEADLK
  注意  这个函数是一个消去点。

#include <sched.h>
int pthread_getschedparam( pthread_t thread, int *policy, struct sched_param *param );
  得到指定线索的调度策略和参数。
  控制  _POSIX_THREAD_PRIORITY_SCHEDULING
  错误  ENOSYS,ESRCH

#include <sched.h>
int pthread_setschedparam( pthread_t thread, int policy,
          const struct sched_param *param );
  设置指定线索的调度策略和参数。
  控制  _POSIX_THREAD_PRIORITY_SCHEDULING
  错误  ENOSYS,EINVAL,ENOTSUP,EPERM,ESRCH
  policy  { SCHED_RR,SCHED_FIFO,SCHED_OTHER }


Copyright: NPACT BACKWARDFORWARD