#include <pthread.h>
#include <stdio.h>
#define FAILURE 0
#define SUCCESS 1
#define UNS32 unsigned int
#define m_ERROR(format, args...) printf(format, ## args);//fflush(stdout);
static pthread_t g_pthread_wait1;
static pthread_t g_pthread_wait2;
void pthread_wait(void *args) {
int i = 0;
for (; i<5; i++) {
printf("%d/n", i);
sleep(1);
}
}
int main() {
if (pthread_create(&g_pthread_wait1, NULL, (void * (*)(void *)) pthread_wait, NULL) !=0) {
return FAILURE;
}
if (pthread_create(&g_pthread_wait1, NULL, (void * (*)(void *)) pthread_wait, NULL) !=0) {
return FAILURE;
}
printf("while!/n");
while(1);
}
程序执行结果:
while!
0
0
1
1
2
2
3
3
4
4
说明两个线程同时执行pthread_wait函数,只不过(&g_pthread_wait1保存的是第二个线程的ID,而第一个线程的ID就没有了,
如果将红色的部分换成(&g_pthread_wait2,则程序的执行结果相同,只是两个线程的ID号,分别由g_pthread_wait1和g_pthread_wait2两个变量保存了。