#include
#include
#include
#include
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1【】
{
printf 【"thread1 : I"m thread 1n"】;
for 【i = 0; i < MAX; i++】
{
printf【"thread1 : number = %dn",number】;
pthread_mutex_lock【&mut】;
number++;
pthread_mutex_unlock【&mut】;
sleep【2】;
}
printf【"thread1 :主函数在等我完成任务吗?n"】;
pthread_exit【NULL】;
}
void *thread2【】
{
printf【"thread2 : I"m thread 2n"】;
for 【i = 0; i < MAX; i++】
{
printf【"thread2 : number = %dn",number】;
pthread_mutex_lock【&mut】;
number++;
pthread_mutex_unlock【&mut】;
sleep【3】;
}
printf【"thread2 :主函数在等我完成任务吗?n"】;
pthread_exit【NULL】;
}
void thread_create【void】
{
int temp;
memset【&thread, 0, sizeof【thread】】; //comment1
/*创建线程*/
if【【temp = pthread_create【&thread[0], NULL, thread1, NULL】】 != 0】 //comment2
printf【"线程1创建失败!n"】;
else
printf【"线程1被创建n"】;
if【【temp = pthread_create【&thread[1], NULL, thread2, NULL】】 != 0】 //comment3
printf【"线程2创建失败"】;
else
printf【"线程2被创建n"】;
}
void thread_wait【void】
{
/*等待线程结束*/
if【thread[0] !=0】 { //comment4
pthread_join【thread[0],NULL】;
printf【"线程1已经结束n"】;
}
if【thread[1] !=0】 { //comment5
pthread_join【thread[1],NULL】;
printf【"线程2已经结束n"】;
}
}
int main【】
{
/*用默认属性初始化互斥锁*/
pthread_mutex_init【&mut,NULL】;
printf【"我是主函数哦,我正在创建线程,呵呵n"】;
thread_create【】;
printf【"我是主函数哦,我正在等待线程完成任务阿,呵呵n"】;
thread_wait【】;
return 0;
}