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

有没有人给点拨一下,线程同步的问题

    来源: 互联网  发布时间:2016-10-15

    本文导语:  本帖最后由 longzuo 于 2010-11-09 15:47:46 编辑 书上(UNIX环境高级编程)讲到线程同步的时候,讲了三种方法, 互斥量(pthread_mutex_t) 读写锁(pthread_rwlock_t) 条件变量(pthread_cond_t), 看起来倒也清晰明了,但据我所知...

本帖最后由 longzuo 于 2010-11-09 15:47:46 编辑
书上(UNIX环境高级编程)讲到线程同步的时候,讲了三种方法,
互斥量(pthread_mutex_t)
读写锁(pthread_rwlock_t)
条件变量(pthread_cond_t),
看起来倒也清晰明了,但据我所知,自旋锁,信号量也是用来同步的,网上搜了搜,貌似后面两种都说是Linux内核的同步方法,后两个名词跟上面的三种同步方法有什么关系吗?linux内核同步和书上讲的线程同步有什么联系吗?


刚刚接触linux编程不久,很快就陷入概念的海洋中。。。 求点拨

|
mutex跟rwlock用来互斥,里面的区别应该很明了了。
cond,sem用来同步,自旋锁用于同核同步。

很多人把互斥跟同步混为一谈,语义上的差别其实还是很大的。

|
互斥量(pthread_mutex_t)
读写锁(pthread_rwlock_t)
条件变量(pthread_cond_t)


这几个都差不多。主要就是细微的差别。
读写锁允许多个读。但是只允许一个写,有写锁,就不允许任何锁。

条件变量很简单,就是由条件出发动作。条件不满足的时候,挂起

|
不要过分沉迷于对概念的纠缠, 互斥跟同步本质而言并不区别, 同步的实现也是通过互斥完成的, 只是在
1. 象自旋锁那样主动轮询检查状态
2. 象信号量那样靠调度程序通知
方法上是选择不同而已。 不光是kernel, 应用程序中也是一样,互斥跟同步的实现要么是轮询检查, 要么是信号。

    
 
 

您可能感兴趣的文章:

  • 有没有使用过Linux下线程池技术的高手,请为我指点迷津!!!
  • static方法有没有多线程的问题?
  • Shell有没有多线程,怎么使用?!
  • JAVA中有没有类似C中的select、poll机制的类包来实现线程并发控制
  • 查看进程里面线程的函数有没有?
  • 有没有多线程的make
  • linux系统下,线程ID和进程ID有没有对映关系
  • Linux下面有没有"线程的亲缘性"相关函数?
  • 有没有办法知道各个线程各自占用的内存?
  • UNIX的多线程技术一知半解,有没有好的书籍资料推荐?
  • java里有没有象vc里的sleep(1000)一样的功能的东西 当然不是实现Runnable不是继承线程类
  • 内核中的timer是不是可以理解为多线程,我想对一段代码加锁,如何实现,有没有可用的内核函数?
  • 有没有办法在线程的run()里面改变外面的类的变量的值,有例子
  • Linux中有没有什么好的下载工具?像Flashget的可以断点续传多线程下载的,我试过用Download for X,但添加任务时,程序就没反应了!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • [AIX]有没有办法查到有没有用户执行了Kill命令
  • linux里有没有象vc那样的IDe啊,有没有类库什么的呢
  • 有没有用过 JCE 的朋友,生成x.509证书,有没有免费算法,用哪家的比较好,给出示例代码!
  • 请问jsp有没方法判断窗口有没有框架???
  • 有没有哪位知道linux下有没有什么可视聊天的工具
  • 请问:编译内核时,make bzimage命令后,提示没有这个规则,这有没有影响呀?
  • 有没有搞错,JSP精华版数据全部没有了。
  • 我想在VMware上装FreeBSD,有没有人这样做过?有什么问题没有?
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?
  • Qt中有没有类似VB中winsock和timer的控件呀,我好像没有找到.
  • 网络技术 iis7站长之家
  • 有没有用过ejb,又开始学com的,如果有,介绍一下经验?没有,则给个理由(如果你有时需要用DNA)?
  • java中有没有destructor的东东,好像一般的class里都没有嘛,难道不要手工做这些事情,全部交给gc处理吗?
  • 在linux redhat6.0中,进入x_window,请问系统有没有自带的c编译器,比如gcc;如果没有,那里可以下载并安装?
  • JAVA中没有宏,那编程和调试起来不是很麻烦吗?有没有一些折中办法?
  • SCJP有没有用
  • InstallShield 有没有linux版本的?
  • 有没有玩的转LINUX源码的高手?
  • 谁知道现在有没有Linux下的搜索引擎?
  • 谁知道现在有没有Linux下的搜索引擎??


  • 站内导航:


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

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

    浙ICP备11055608号-3