參考:https://blog.csdn.net/choudan8888/article/details/98329862
創建線程接口:pthread_create() 創建成功返回0,否則返回非零值
通過示例簡單瞭解下線程執行情況
注意:Makefile腳本加上-lpthread,不然報錯
示例:
#Makeile
main:main.o
gcc main.o -o main -lpthread
main.o:main.c
gcc -c -Wall main.c -o main.o
.PHONY:clean
clean:
rm -rf *.o main
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<pthread.h>
void * thread_strat(void *message)
{
printf("%s[%d] %s\n thread=%lu \n",__func__,__LINE__,(const char *)message,pthread_self());
/*讓出執行權,返回main。直到main再次讓出執行權*/
sleep(1);
printf("%s[%d] thread=%lu here is thread\n",__func__,__LINE__,pthread_self());
return message;
}
int main(void)
{
pthread_t thread;
int ret;
const char *message = "creat thread succ";
/*只是創建線程,並不執行*/
ret = pthread_create(&thread,NULL,thread_strat,(void *)message);
if(!ret)
{
perror("pthread_creat");
}
printf("%s[%d] thread=%lu \n",__func__,__LINE__,pthread_self());
/*讓出執行權,開始執行線程。直到線程睡眠,才返回main*/
sleep(1);
printf("%s[%d] thread=%lu i'm comming!\n",__func__,__LINE__,pthread_self());
sleep(1);
printf("%s[%d] thread=%lu i'm comming!\n",__func__,__LINE__,pthread_self());
return 0;
}