社区
Linux/Unix社区
帖子详情
信号量可以用于多进程多线程同时互斥不?
zhqyzhqychn
2010-07-21 11:24:44
多个进程需要信号量来互斥,每个进程内又有多个线程,信号量在一个进程的多个线程之间需要在加线程锁互斥吗
...全文
754
14
打赏
收藏
信号量可以用于多进程多线程同时互斥不?
多个进程需要信号量来互斥,每个进程内又有多个线程,信号量在一个进程的多个线程之间需要在加线程锁互斥吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Coder_Granger
2010-07-21
打赏
举报
回复
[Quote=引用 8 楼 zhqyzhqychn 的回复:]
引用 4 楼 carey1986 的回复:
进程间的信号量和线程间的信号量不是一回事啊
我的信号量 是用来做多进程互斥的,所以不知道如果每个进程有多个线程使用的话会不会需要在另外线程间互斥
[/Quote]
信号量是系统全局的
谭海燕
2010-07-21
打赏
举报
回复
[Quote=引用 8 楼 zhqyzhqychn 的回复:]
引用 4 楼 carey1986 的回复:
进程间的信号量和线程间的信号量不是一回事啊
我的信号量 是用来做多进程互斥的,所以不知道如果每个进程有多个线程使用的话会不会需要在另外线程间互斥
[/Quote]
那就看你的线程之间需不需要互斥。如果需要互斥,那就得加上
zhqyzhqychn
2010-07-21
打赏
举报
回复
[Quote=引用 4 楼 carey1986 的回复:]
进程间的信号量和线程间的信号量不是一回事啊
[/Quote]
我的信号量 是用来做多进程互斥的,所以不知道如果每个进程有多个线程使用的话会不会需要在另外线程间互斥
mymtom
2010-07-21
打赏
举报
回复
[Quote=引用 6 楼 zhqyzhqychn 的回复:]
引用 2 楼 wwwunix 的回复:
这个要看你的实际应用是什么样子的。如果线程中的资源和其他进程中的资源都是同一个临界资源则需要互斥。
有点好奇,如果这些进程和线程中的资源都是同样的临界资源的话。为什么不都采用线程?
我是进程间需要通过共享内存通讯,每个进程里有多个线程可以往共享内存读写,然后也可以有多个进程往里读写,我看有人说线程信号量和进程信号量不是一回事?
[/Quote]
我咋听说是一回事呢?
zhqyzhqychn
2010-07-21
打赏
举报
回复
[Quote=引用 2 楼 wwwunix 的回复:]
这个要看你的实际应用是什么样子的。如果线程中的资源和其他进程中的资源都是同一个临界资源则需要互斥。
有点好奇,如果这些进程和线程中的资源都是同样的临界资源的话。为什么不都采用线程?
[/Quote]
我是进程间需要通过共享内存通讯,每个进程里有多个线程可以往共享内存读写,然后也可以有多个进程往里读写,我看有人说线程信号量和进程信号量不是一回事?
太乙
2010-07-21
打赏
举报
回复
信号量有进程信号量,也有线程信号量。。。
luketty
2010-07-21
打赏
举报
回复
同样需要
carey1986
2010-07-21
打赏
举报
回复
进程间的信号量和线程间的信号量不是一回事啊
wwwunix
2010-07-21
打赏
举报
回复
这个要看你的实际应用是什么样子的。如果线程中的资源和其他进程中的资源都是同一个临界资源则需要互斥。
有点好奇,如果这些进程和线程中的资源都是同样的临界资源的话。为什么不都采用线程?
谭海燕
2010-07-21
打赏
举报
回复
你可以在线程中设置一个信号量
谭海燕
2010-07-21
打赏
举报
回复
[Quote=引用 13 楼 zhqyzhqychn 的回复:]
我的意思是说,如果多个线程访问同一个信号量不需要互斥吧,呵呵,看来是不需要的
[/Quote]
什么是信号量?汗。。。
zhqyzhqychn
2010-07-21
打赏
举报
回复
[Quote=引用 9 楼 feiyinzilgd 的回复:]
引用 8 楼 zhqyzhqychn 的回复:
引用 4 楼 carey1986 的回复:
进程间的信号量和线程间的信号量不是一回事啊
我的信号量 是用来做多进程互斥的,所以不知道如果每个进程有多个线程使用的话会不会需要在另外线程间互斥
那就看你的线程之间需不需要互斥。如果需要互斥,那就得加上
[/Quote]
我的意思是说,如果多个线程访问同一个信号量不需要互斥吧,呵呵,看来是不需要的
Wenxy1
2010-07-21
打赏
举报
回复
可以,见经典的文章:
Posix线程编程指南(3)
http://www.ibm.com/developerworks/cn/linux/thread/posix_threadapi/part3/
wwwunix
2010-07-21
打赏
举报
回复
[Quote=引用 6 楼 zhqyzhqychn 的回复:]
引用 2 楼 wwwunix 的回复:
这个要看你的实际应用是什么样子的。如果线程中的资源和其他进程中的资源都是同一个临界资源则需要互斥。
有点好奇,如果这些进程和线程中的资源都是同样的临界资源的话。为什么不都采用线程?
我是进程间需要通过共享内存通讯,每个进程里有多个线程可以往共享内存读写,然后也可以有多个进程往里读写,我看有人说线程信号量和进程信号量不是一回事?
[/Quote]
信号量是系统全局的,其操作是原子的,由kernel实现。不管是在进程中或是在线程中,对这个信号量做了操作都会对其他的进程或线程产生作用。也就是说,你在一个进程/线程中使用了P操作,则其他进程/线程都会等待。直到原来的那个进程/线程执行了V操作。
下载
多线程
编程技术开发资料 高清完整PDF版
常见的同步机制包括
互斥
锁(mutex)、
信号量
(semaphore)、事件(event)和条件变量(condition variable)等。同步机制可以帮助线程协调对共享资源的访问,防止数据不一致。 4.
多线程
编程模型 目前主要的
多线程
...
C语言中的
信号量
、进程同步与
互斥
、线程同步与
互斥
详解
在C语言中,
信号量
是一种
用于
多线程
或进程同步的机制,主要
用于
解决并发问题,确保多个线程或进程对共享资源的正确访问。它在
多进程
和
多线程
编程中扮演重要角色,能有效防止竞态条件和数据不一致。此外,
多线程
和多...
同步与
互斥
之
信号量
信号量
广泛
用于
进程或线程间的同步和
互斥
,
信号量
本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。当
信号量
值大于 0 时,则可以访问,否则将阻塞。
信号量
是一种
用于
控制进程或线程同步和
互斥
的机制。...
详解
信号量
和
互斥
锁之间的区别和联系
一:
信号量
与
互斥
锁之间的区别: (1):
互斥
量
用于
线程的
互斥
,信号线
用于
线程的同步。...
信号量
可以实现多个同类资源的
多线程
互斥
和同步。当
信号量
为单值
信号量
是,也可以完成一个资源的
互斥
访问。
信号量
...
进程与线程,
信号量
与
互斥
量的区别
什么是进程? 进程是一个程序正在执行的实例。... 当内核产生一个新的PID,生成对应的
用于
管理的数据结构,并为运行程序代码分配了必要的资源,一个新的进程就产生了。 什么是线程? 线程是进程的一个
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章