求代码解释关于 线程的一些问题
#include <stdio.h>#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <pthread.h>
#define NT 16
pthread_mutex_t mutt;//
int sum = 0;
void *worker(void *p);
int main(int arg, char *argv[])
{
pthread_t thid[NT];//
int id[NT];
int i;
for(i=0;i<NT;i++)
id[i] = i;
pthread_mutex_init(&mutt, 0);//
for(i=0;i<NT;i++)
pthread_create(&thid[i], 0, (void *) worker, (void *) &id[i]);//
for(i=0;i<NT;i++)
pthread_join(thid[i], 0);//
printf("%d\n", sum);
}
void *worker(void *p)
{
int i,tmp;
pthread_mutex_lock(&mutt);//
tmp = sum;
for(i=0;i<1000;i++)
;
tmp++;
sum = tmp;
pthread_mutex_unlock(&mutt);//
return;
}
这个学期学习unix系统,线程这一块我没听懂。希望会的大神能给我解释下我标记//代码的意思。我在网上查了查资料,自己大概有些印象,但是还是希望朋友们能给我指点一下让我有个印证。谢谢大家。这绝不是作业帖,谢谢。