当前位置:  技术问答>linux和unix

pthread 阻塞问题

    来源: 互联网  发布时间:2015-09-07

    本文导语:  pthread 阻塞问题 #include  #include  #include  pthread_t pid; pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond=PTHREAD_COND_INITIALIZER; void thread(void) { pthread_mutex_lock(&mutex); pthread_cond_wait(&cond,&mutex); pthread_mutex_unlock(&mutex...

pthread 阻塞问题

#include 
#include 
#include 
pthread_t pid;
pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond=PTHREAD_COND_INITIALIZER;

void thread(void)
{
pthread_mutex_lock(&mutex);
pthread_cond_wait(&cond,&mutex);
pthread_mutex_unlock(&mutex);
printf("This is a threadn");
}
int main()
{
pthread_t id;
int ret;
ret=pthread_create(&id,NULL,(void*)thread,NULL);
if(ret)
{
printf("create thread error");
exit(1);
}

//getchar();?????????????
pthread_mutex_lock(&mutex);
pthread_cond_signal(&cond);
pthread_mutex_unlock(&mutex);

pthread_join(id,NULL);
return 0;
}

1.为什么在main中执行了pthread_cond_signal(&cond),thread()线程仍然阻塞???而我把getchar()加上就解开pthread_cond_wait阻塞

2.其实我这么做的目的是想创建个线程就马上将它先挂起(类似windwos下的线程函数创建一个挂起的线程),是否有更好的方法?

|
一个竞争问题,pthread_cond_signal先于pthread_cond_wait导致丢失.
只用mutex或者semaphore就可以了

    
 
 

您可能感兴趣的文章:

  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程?
  • Linux里的pthread_create会不会阻塞啊?
  • Linux pthread_cond_timewait 无法阻塞,请大侠快来指点。
  • C++中,为什么执行pthread_mutex_lock()时执行了两次线程才被阻塞?
  • pthread_cond_wait 不阻塞?
  • ~如何GDB调试因pthread_cond_wait()阻塞的线程??~
  • 问一个关于pthread线程删除(取消)的问题
  • linux下运行pthread库出错的问题
  • 求助!pthread与Win32 API线程库的对应问题
  • 请教一个pthread线程库的使用的问题
  • 关于pthread_cancel()之后的内存问题
  • 关于pthread_create函数的问题
  • pthread_create的问题
  • 关于pthread_cond_wait的几个问题
  • 线程锁函数pthread_cleanup_push()编译问题,急!
  • pthread共享模式链接时是不是有问题啊?
  • pthread_cleanup_push的小问题?
  • 关于pthread_mutex_lock的问题,请教各位
  • 初始化pthread_mutex_t变量的问题?????
  • 急 关于 pthread_cond_timedwait() 超时后的问题!!!在线等
  • pthread_create函数执行问题
  • 在pthread function 里面我用new 分配的内存问题 。。。
  • linux iis7站长之家
  • 有关使用pthread_creat时的参数传递问题!!!
  • pthread_create 的问题 ,求救大家!!!
  • pthread线程问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);和pthread_detach(pthread_self()); 有区别吗。怎么我执行的效果不一样
  • pthread_attr_init()及pthread_cond_wait使用疑惑
  • pthread_cond_signal和pthread_cond_wait两个函数是怎么意思?
  • 包含了#include <pthread.h>,为什么还有pthread_create错误?
  • 先pthread_cancel()再pthread_join(),主线程退出?
  • 请问pthread_mutex_lock()和pthread_mutex_unlock()可不可以用于对不同进程的线程进行同步。
  • 请问一下红色字体处的区别,及pthread_self()和pthread_creat()函数第一个参数的区别?
  • pthread_cond_wait 之前的 pthread_mutex_lock 语句 有什么作用,可以不用吗?
  • pthread_cancel和pthread_cond_wait
  • pthread_cond_t和pthread_mutex_t的疑问?
  • pthread_cond_t进入等待状态,则pthread_mutex_t无效...
  • LINUX关于pthread_create 和pthread_join
  • Pthread
  • pthread_create成功返回,但pthread_kill(thrdid, 0)返回说进程不存在?
  • pthread_cond_timedwait用来让线程睡眠无效?
  • pthread_cond_timedwait用法
  • 关于线程pthread.h
  • Unix中PThread是干什么用的,创建线程吗---小妹
  • 为什么我在man中查不到有关pthread的帮助?
  • 一个pthread_create 编译出错,是什么原因啊


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3