Stylist Diaryblueday.blog.chinaunix.net
blueday
全部博文(292)
2011年(1)
2010年(4)
2009年(3)
2008年(6)
2007年(47)
2006年(63)
2005年(168)
ablewen
tiny-yao
pm_cu
sky555
cynthia
Bsolar
浪花小雨
格伯纳
q4993115
不一样的
shiming1
hd141283
yejia805
分类: LINUX
2008-04-14 00:35:55
#include<stdio.h> #include<pthread.h> #include<string.h> #include<sys/types.h> #include<unistd.h> //此程序加入了互斥锁 //父子线程是并行,没有一定的顺序 //所以如果父线程加锁,子线程没有可用的资源,你们程序就退出 //如果子线程加锁,父线程没有可用资源,那么程序将会进入等待解锁状态,导致程序不能正常结束. static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; pthread_t ntid; void printids(const char *s) { pid_t pid; pthread_t tid; pid = getpid(); //进程ID tid = pthread_self(); //线程ID pthread_mutex_lock(&mutex); printf("%s pid %u tid %u (0x%x)\n",s,(unsigned int)pid,(unsigned int)tid,(unsigned int)tid); //下面这行进行注释也就是只加锁,不解锁,测试程序。pthread_mutex_unlock(&mutex); } void *thr_fn(void *arg) { printids("new thread:"); return ((void *)0); } int main() { int err; err = pthread_create(&ntid,NULL,thr_fn,NULL); if(err != 0) { printf("can't create thread: %s\n",strerror(err)); return 1; } printids("main thread:"); return 0; }
上一篇:Oracle如何配置多个监听器
下一篇:一生要有五个特别的经典朋友
chinaunix网友2008-04-18 16:13:37
竞争了! main里面join一下!
blueday2008-04-18 00:04:29
如果需要声明特定属性的互斥锁,须调用函数pthread_mutexattr_init。
jjlc2008-04-17 09:55:00
写了static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 是不是在main函数里面就不用init互斥锁了呢?
登录 注册