由于硬件提供商会实现线程的硬件专用版本,为了使线程程序可移植,需要标准的线程编程接口:POSIX threads或者Pthreads
Pthreads库被定义为一系列的c语言程序类型和过程调用,是用pthreads的include头文件和一个线程库来实现的
使用Pthreads的目的
使获得潜在的程序执行性能变成现实
当与创建和管理进程的代价相比较时,线程创建时只需要更小的系统开支,管理线程比管理进程需要更少的系统资源
进程内的所有线程共享相同的地址空间
线程的创建与取消:
创建线程:
int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg)
pthread_create()创建的线程不具备与主线程(调用pthread_create()的线程)同样的执行序列,而是使其运行start_routine(arg)函数
thread返回创建线程的ID,attr是创建线程时设置的线程属性
pthread_create()的返回值表示线程是否创建成功。
arg是void类型变量,但是可以作为任意类型的参数传给start_routine()函数;start_routine()返回一个void类型的返回值,这个值可以是其它类型,由pthread_join()获取
attr参数是一个结构指针
网友评论