引入:
在这个系列的第一篇博文中介绍了线程的基本概念
这篇文章就立刻投入实战,
讲一讲怎么样写一个简单的多线程并发的抢票程序
也就是说 用多个线程对临界区数据的抢占
来模拟多个人不排队在售票窗口抢票的场景
首先我们会介绍和线程相关的api
然后用一个小例子介绍这些api的使用方法
最后就是讲解这个"抢票程序"
目录
基本API
需要包括的头文件
#include<pthread .h>
线程创建函数
int pthread_create (pthread_ t *thread , canst pthread_attr_ t *attr, void * (*start_routine) (void *) , void *arg) ;
第一个参数 传入参数 若线程创建成功 则该参数赋值指向线程标识符的指针 指向内存单元将存放线程id 若创建线程失败 则该参数未定义
第二个 数用来设置线程属性,
第三个参数是线程运行函数的起始地址,
最后一个参数是运行函数的参数
返回值:若线程创建成功,则返回 0;若线程创建失败,则返回出错编号,
主线程回收子线程函数
int pthread_join (pthread_t thread , void ** retval)
第一个参数为被 待的线程标识符,
第二个参数为一个用户定义的指针,用来获取被等待线程的结束时候传进来的返回值
这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止, 函数返回时,被等待线程的资源被收回