Fosdccf.blog.chinaunix.net
sdccf
全部博文(19283)
Linux酷软(214)
tmp(0)
PostgreSQL(93)
Solaris(383)
AIX(173)
SCOUNIX(575)
DB2(1005)
Shell(386)
C/C++(1187)
MySQL(1750)
Sybase(465)
Oracle(3695)
Informix(548)
HP-UX(0)
IBM AIX(2)
Sun Solaris(0)
BSD(1)
Linux(8597)
SCO UNIX(23)
2011年(1)
2009年(125)
2008年(19094)
2007年(63)
clifford
linky521
曾德标
fengzhan
leon_yu
mcuflowe
yt200902
guanyuji
GY123456
snow888
carlos94
丸喵喵
sean229
cxunix
可怜的猪
cqxc413
xzzgege
wb123456
分类: C/C++
2008-05-01 17:57:28
#include #include #include #include #include //此程序加入了互斥锁 //父子线程是并行,没有一定的顺序 //所以如果父线程加锁,子线程没有可用的资源,你们程序就退出 //如果子线程加锁,父线程没有可用资源,那么程序将会进入等待解锁状态,导致程序不能正常结束. 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; }
上一篇:pipe fd_set 用法
下一篇:深入学习Oracle的Hash join
登录 注册