例1:进程与线程并行输出
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <pthread.h>
//线程函数入口
void *thread_routine(void *arg)
{
printf("I am a thread, my thread id is : %d\n", pthread_self());
int i;
for ( i = 0; i < 5; i++)
{
printf("thread i = %d\n", i);
fflush(stdout); //冲洗缓冲区,避免影响进程
sleep(1);
}
printf("I am a thread, I will exit\n");
}
int main()
{
pthread_t tid;
int ret = 0;
ret = pthread_create(&tid, NULL, thread_routine, NULL); //创建一个线程
if (ret != 0)
{
printf("pthread_create error\n");
exit(0);
}
int i;
for ( i = 0; i < 5; i++)
{
printf("main i = %d\n", i);
fflush(stdout); //冲洗缓冲区,避免影响线程
sleep(1);
}
sleep(2); //等待线程退