的值,比如说是2,那是不是和 原子操作一样能有两个 进程同时获得这个信号量呢?还是其它的什么情况?求各位大虾们,解释指教!
4 个解决方案
#1
你说的没错,必须初始化为1.
#2
大于1就是可以有多个
但是无法保证数据不出问题
实际驱动一般不会这么用, 可以用其他代替,如读写锁==
但是无法保证数据不出问题
实际驱动一般不会这么用, 可以用其他代替,如读写锁==
#3
当同一资源的数量为N时,意味能够允许N个进程同时使用该资源,此时,可以设置相应信号量的初值为N。
如果资源只有一个,且互斥使用时,信号量的初值必须为1。
原子操作的概念与信号量的初值概念无关,说的是一小段程序操作不能被打断。
如果资源只有一个,且互斥使用时,信号量的初值必须为1。
原子操作的概念与信号量的初值概念无关,说的是一小段程序操作不能被打断。
#4
谢谢各位的回答,按照你们说的也就是说我的理解是对的咯!呵呵!
#1
你说的没错,必须初始化为1.
#2
大于1就是可以有多个
但是无法保证数据不出问题
实际驱动一般不会这么用, 可以用其他代替,如读写锁==
但是无法保证数据不出问题
实际驱动一般不会这么用, 可以用其他代替,如读写锁==
#3
当同一资源的数量为N时,意味能够允许N个进程同时使用该资源,此时,可以设置相应信号量的初值为N。
如果资源只有一个,且互斥使用时,信号量的初值必须为1。
原子操作的概念与信号量的初值概念无关,说的是一小段程序操作不能被打断。
如果资源只有一个,且互斥使用时,信号量的初值必须为1。
原子操作的概念与信号量的初值概念无关,说的是一小段程序操作不能被打断。
#4
谢谢各位的回答,按照你们说的也就是说我的理解是对的咯!呵呵!