源代码:
#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/unistd.h>
#include <sys/types.h>
void *pthread_function(void *arg);
int main(int argc, char **argv)
{
pthread_t mythread;
if (pthread_create(&mythread, NULL, pthread_function, NULL)) { /* 创建线程 */
printf("strerror(errno)\n");
abort();
}
if (pthread_join(mythread, NULL)) { /* 等待线程结束 */
printf("error joining thread.");
abort(); /* 不正常程序终止 exit:正常程序的终止 */
}
return 0;
}
void *pthread_function(void *arg)
{
int i;
_syscall0(pid_t, gettid);
printf("my pthread ID is:%ld\n", gettid());
for (i = 0; i < 10; i++) {
printf("hello,%d!\t", i);
fflush(stdout); /* 将用户空间数据强制输出,内核以回车当作一次输出,如没有回车内核会把要输出的数据等到程序结束后一起输出。 */
sleep(1);
}
printf("\n");
return NULL;
}
编译: gcc my_pthread.c -lpthread -Wall
运行:. /a.out
结果:(运行期间可用ps -eLf 查看线程的ID号)
my pthread ID is:14316
hello,0! hello,1! hello,2! hello,3! hello,4! hello,5! hello,6! hello,7! hello,8! hello,9!
--
/**************************************/
Name: Xiong Feng
E-mail:linux0818@gmail.com
MSN:linux0818@hotmail.com
QQ:23562033
Address: GuangZhou.China
/**************************************/
没有评论:
发表评论