红联Linux门户
Linux帮助

Linux系统下线程锁的应用

发布时间:2006-12-28 01:18:11来源:红联作者:Heroop
  闲极无聊,为了浇灌已经荒芜的BLOG,胡乱写写代码。

引用:
/**********************************************
作者:猪头流氓
时间:Tue Dec 26 16:45:30 2006
文件名:tt.c
描述:

gcc -o target tt.c -lpthread

gcc -o target tt.c -lpthread -DLOCK
**********************************************/
#include
#include

#ifdef LOCK
pthread_mutex_t lm;
#endif

void * func(void * avg);
int count;
int main()
{

#ifdef LOCK
pthread_mutex_init(&lm, NULL);
#endif
pthread_t pa,pb;
pthread_create(&pa, NULL, &func, NULL);
pthread_create(&pb, NULL, &func, NULL);
pthread_join(pa, NULL);
pthread_join(pb, NULL);
return 0;

}

void * func(void *avg)
{
int i, val;
for(i=0; i<20; i++) {
#ifdef LOCK
pthread_mutex_lock(&lm);
#endif
val=count;
int rd=random();
sleep(rd%2);
printf("%u:%d\n", pthread_self(), val+1);
count++;
#ifdef LOCK
pthread_mutex_unlock(&lm);
#endif
}

}


  分别按照加-DLOCK和不加编译执行,就能看出锁的重要性了。
文章评论

共有 0 条评论