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

关于互斥量类型属性,在LINXU系统中为什么总是编译不通过?

    来源: 互联网  发布时间:2016-08-17

    本文导语:  #include #include #include #include #include #include pthread_mutex_t mutex; int count; void *thread1(void *arg) {  int err;    printf("thread1 runn");    sleep(2);   err=pthread_mutex_lock(&mutex);   if(err!=0)   strerror(err);   err=pthread_mutex_lock(&mutex); ...

#include
#include
#include
#include
#include
#include
pthread_mutex_t mutex;
int count;
void *thread1(void *arg)
{  int err;
   printf("thread1 runn");
   sleep(2);
  err=pthread_mutex_lock(&mutex);
  if(err!=0)
  strerror(err);
  err=pthread_mutex_lock(&mutex);
  if(err!=0)
  strerror(err);
  printf("thread1 overn");
  return ((void *)0);
   
}
void *thread2(void *arg)
{
   int err;
   printf("thread2 runn");
   err=pthread_mutex_lock(&mutex);
   if(err!=0)
   printf("thread2 pthread2_mutex failn");
   count++;
   pthread_mutex_unlock(&mutex);
   printf("count=%d",count);
   return ((void *)0);
   
}
int main(void)
{  int err;
   pthread_t tid1,tid2;
   pthread_mutexattr_t mutexattr;
   err=pthread_mutexattr_init(&mutexattr);
   if(err!=0)
   strerror(err);
   err=pthread_mutexattr_setpshared(&mutexattr,PTHREAD_PROCESS_PRIVATE);
   if(err!=0)
   strerror(err);
   err=pthread_mutexattr_settype(&mutexattr,PTHREAD_MUTEX_NORMAL);//编程的时候总是说PTHREAD_MUTEX_NORMAL错误
   if(err!=0)
   strerror(err);
   err=pthread_mutex_init(&mutex,&mutexattr);
   if(err!=0)
   printf("mutex chushihuaishibain");
   err=pthread_create(&tid1,NULL,thread1,NULL);
   if(err!=0)
   printf("thread1 pthread_create failn");
   err=pthread_create(&tid2,NULL,thread2,NULL);
   if(err!=0)
   printf("thread2 pthread_create failn");
   pthread_join(tid1,NULL);
   pthread_join(tid2,NULL);
   pthread_mutexattr_destroy(&mutexattr);
   pthread_mutex_destroy(&mutex);
   return 0;
   
   
   
}

这是我的写的个测试 互斥量类型属性的小程序 编译的时候总是说PTHREAD_MUTEX_NORMAL未定义过,我上面有包含头文件,不知道错在哪里,请高手指点

|
两个办法
1. 编译命令行加个选项 -D_GNU_SOURCE
2. 用 PTHREAD_MUTEX_TIMED_NP 代替  PTHREAD_MUTEX_NORMAL

|
是-D__USE_UNIX98

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c++的boost库多线程(Thread)编程(线程操作,互斥体mutex,条件变量)详解
  • 互斥锁的一个问题
  • 在下面这段代码中,如果对init方法只加synchronized关键字,则不能达到互斥的目的,还要再加上static关键字才能互斥,为什么?
  • wince程序防止创建多个实例实现互斥作用
  • 信号量和互斥锁有什么区别??
  • linux进程同步或互斥
  • 进程对串口读写时使用互斥机制吗?
  • 在linux下,如何进行“互斥”和“并发”的控制?
  • 条件变量和互斥量区别
  • 信号量可以用于多进程多线程同时互斥不?
  • 多线程调用ioctl 应在哪进行互斥操作?
  • 关于用文件实现进程互斥的问题
  • 问个多线程网络服务程序的文件操作符的互斥问题
  • 请教POSIX问题:一个进程中,可以有多个互斥锁麽?
  • 网络技术 iis7站长之家
  • 线程同步读取变量可不可以不用互斥锁
  • 用户态能否实现信号量机制,来提供线程间互斥和同步的功能?
  • linux/unix里的进程互斥问题 ,有关lockf()函数!
  • 关于内核互斥体的问题
  • 互斥锁和信号量,能不能实现先阻塞先唤醒,顺序获取互斥锁和信号量
  • 信号量互斥问题


  • 站内导航:


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

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

    浙ICP备11055608号-3