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

关于互斥锁问题的求助!

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

    本文导语:  最近在研究互斥锁时有一个疑问:在使用互斥锁对一个函数加锁后,是由互斥量来标记,还是由内核来标记? 举例来说:        有一个函数func()        线程A中使用时需要加锁,        pthread_mutex_t mute...

最近在研究互斥锁时有一个疑问:在使用互斥锁对一个函数加锁后,是由互斥量来标记,还是由内核来标记?
举例来说:
       有一个函数func()
       线程A中使用时需要加锁,
       pthread_mutex_t mutex;
       pthread_mutex_init(&mutex,NULL);
       pthread_mutex_lock(&mutex);
       func();
       pthread_mutex_unlock(&mutex);


       在线程B中使用时,是必须使用线程A中使用的互斥变量mutex(假设是定义为全局的)吗?还是能够使用自己定义的互斥变量?如:
       pthread_mutex_t mutex2;
       pthread_mutex_init(&mutex2, NULL);
       pthread_mutex_lock(&mutex2);
       func();
       pthread_mutex_unlock(&mutex2);

我想知道的是,互斥锁是通过判断互斥变量(都使用全局互斥变量mutex的情况)是否被使用过来实现的,还是通过内核对函数func()做的标记来实现的(不同线程可以使用不同的互斥变量mutex,mutex2)。


希望高人给讲解一下,不胜感激!

       

|
看来你没有明白互斥量的真正含义。

不同的线程对同一临界区进行操作时,若使用互斥量mutex,所有线程中均使用该互斥量。


       有一个函数func() 
       线程A中使用时需要加锁, 
       pthread_mutex_t mutex;(全局) 
      pthread_mutex_init(&mutex,NULL); 
      pthread_mutex_lock(&mutex); 
      func(); 
      pthread_mutex_unlock(&mutex); 


        
      B直接调用如下:
      pthread_mutex_lock(&mutex); 
      func(); 
      pthread_mutex_unlock(&mutex); 

|
哦,我也在学这个,没错的话应该是定义全局变量pthread_mutex_t mutex  然后全部都用这一个
就把它想成是锁住了,如果要去获取数据,必须把这个锁打开,管它是谁都要打开这个锁才可以,所以应该就是同一个锁了..关于互斥锁问题的求助![图片]  给我点分吧,我还没技术分呢。。。。一定要给我分哦,要是回答错了就不给吧

|
不同线程要使用相同的资源时,需要先得到同一个mutex。也就是说,两个mutex是护不相关的。

|
必须全局的。每个互斥锁有个唯一的标识一样。两个互斥锁变量之间是没影响的。

    
 
 

您可能感兴趣的文章:

  • 求助 程序中添加互斥锁代码后编译怎么通不过 ?
  • 新手求助互斥锁添加问题
  • 求助,GCC中关于互斥锁的问题
  • 求助:linux 用户态 线程同步中信号量、互斥量、锁之间的区别?
  • 互斥锁的一个问题
  • 问个多线程网络服务程序的文件操作符的互斥问题
  • 关于用文件实现进程互斥的问题
  • 请教POSIX问题:一个进程中,可以有多个互斥锁麽?
  • 信号量互斥问题
  • 关于文件读些互斥的问题
  • c语言实现程序互斥问题 急.....
  • linux/unix里的进程互斥问题 ,有关lockf()函数!
  • 关于内核互斥体的问题
  • 线程里互斥和条件变量一起使用的问题,有点迷惑.
  • 操作系统 同步互斥问题
  • 线程互斥问题
  • 关于互斥量的一个问题###
  • 使用swap指令和Test and set指令设计一个解决N个进程互斥问题的算法
  • 互斥量的问题
  • 简单的互斥问题(初学级)
  • pthread_mutex_lock互斥量问题
  • 关于pthread_wait和互斥锁配合的使用问题
  • 关于互斥锁的问题,请高手给于指点
  • Linux下多线程互斥问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c++的boost库多线程(Thread)编程(线程操作,互斥体mutex,条件变量)详解
  • 在下面这段代码中,如果对init方法只加synchronized关键字,则不能达到互斥的目的,还要再加上static关键字才能互斥,为什么?
  • wince程序防止创建多个实例实现互斥作用
  • 信号量和互斥锁有什么区别??
  • linux进程同步或互斥
  • 进程对串口读写时使用互斥机制吗?
  • 在linux下,如何进行“互斥”和“并发”的控制?
  • 条件变量和互斥量区别
  • 信号量可以用于多进程多线程同时互斥不?
  • 多线程调用ioctl 应在哪进行互斥操作?
  • 条件变量是不是一定要搭配互斥锁才能发挥作用?
  • 线程同步读取变量可不可以不用互斥锁
  • 用户态能否实现信号量机制,来提供线程间互斥和同步的功能?
  • 互斥锁和信号量,能不能实现先阻塞先唤醒,顺序获取互斥锁和信号量
  • 请问Unix下的进程互斥是用什么实现的?
  • 管程如何实现互斥
  • 线程同步读取变量可不可以不用互斥锁 iis7站长之家
  • 用mkdir实现互斥操作可行吗?
  • linux下临界区和互斥锁的关系
  • 信号量实现的同步互斥机制
  • 高手请进!Solaris下如何实现原子加的操作?不用互斥量等等同步对象!


  • 站内导航:


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

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

    浙ICP备11055608号-3