example02.c

来自「unix网络编程卷1:套接口API的全书源码」· C语言 代码 · 共 47 行

C
47
字号
#include	"unpthread.h"#define	NLOOP 5000int				counter;		/* incremented by threads */pthread_mutex_t	counter_mutex = PTHREAD_MUTEX_INITIALIZER;void	*doit(void *);intmain(int argc, char **argv){	pthread_t	tidA, tidB;	Pthread_create(&tidA, NULL, &doit, NULL);	Pthread_create(&tidB, NULL, &doit, NULL);		/* 4wait for both threads to terminate */	Pthread_join(tidA, NULL);	Pthread_join(tidB, NULL);	exit(0);}void *doit(void *vptr){	int		i, val;	/*	 * Each thread fetches, prints, and increments the counter NLOOP times.	 * The value of the counter should increase monotonically.	 */	for (i = 0; i < NLOOP; i++) {		Pthread_mutex_lock(&counter_mutex);		val = counter;		printf("%d: %d\n", pthread_self(), val + 1);		counter = val + 1;		Pthread_mutex_unlock(&counter_mutex);	}	return(NULL);}

⌨️ 快捷键说明

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