pthread.c

来自「linux环境下线程的创建、管理和终止」· C语言 代码 · 共 52 行

C
52
字号
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

void *mythread1(void *num)
{
	int i;
	for(i = 0; i < 5; i++){
		printf("thread1: %d\n", (int)num);
	}
	pthread_exit((void *)1);
}

void *mythread2(void *str)
{
	int i;
	for(i = 0; i < 5; i++){
		printf("thread2: %s\n", (char *)str);
	}
	pthread_exit((void *)2);
}

int main(int argc, char *argv)
{
	pthread_t pid_1, pid_2;
	void *rtn;
	int i;
	int year = 2008;
	char str[] = "Bjut";
	assert(sizeof(int) <= sizeof(void *));
	assert(sizeof(char *) <= sizeof(void *));
	if(pthread_create(&pid_1, NULL, mythread1, (void *)year) == -1){
		printf("create thread1 error\n");
		exit(1);
	}
	/* for(i = 0; i < 5; i++){ */
	/* 	printf("main thread is waiting...\n"); */
	/* } */
	if(pthread_create(&pid_2, NULL, mythread2, (void *)str) == -1){
		printf("creat thread2 error\n");
		exit(1);
	}	
	pthread_join(pid_1, &rtn);	
	printf("pthread1 exit on status: %d\n", (int)rtn);
	pthread_join(pid_2, &rtn);
	printf("pthread2 exit on status: %d\n", (int)rtn);
	printf("main thread exit\n");
	exit(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?