pthread_create 函数

#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两个变量保存了。

你可能感兴趣的:(null,include)