Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92255202
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: 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;
}

阅读(354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~