#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
using namespace std;
void *thread_1(void *)
{
int i = 0;
for (i=0; i<5; i++)
{
printf("This is thread 1111 -----\n");
if (i == 3)
{
printf("Thread_1 will exit !!\n");
pthread_exit(0);
}
}
}
void *thread_2(void *)
{
int i = 0;
for (i=0; i<6; i++)
{
printf("This is thread 2222 -----\n");
if (i == 3)
{
printf("Thread_2 will usleep() !!\n");
usleep(200000);
pthread_exit(0);
}
}
}
int main()
{
pthread_t id_1 = 0, id_2 = 0;
int ret;
ret = pthread_create(&id_1, NULL, thread_1, NULL);
printf("Thread 111 ret_1 is %d\n", ret);
if (ret != 0)
{
printf("Thread 111 create error !!\n");
return -1;
}
ret = pthread_create(&id_2, NULL, thread_2, NULL);
printf("Thread 222 ret_2 is %d\n", ret);
if (ret != 0)
{
printf("Thread 222 create error !!\n");
return -1;
}
pthread_join(id_1, NULL);
pthread_join(id_2, NULL);
return 0;
}
/** 线程创建问题,create一个线程后,并不一定马上执行,需要等当前主线程的时间片结束后,随机分配给
/* 下一个线程,所以没有特定的执行顺序,pthread_join为了保证所有线程执行结束,才结束主线程*/