- 主题:synchornised和信号量都是用互斥量和条件变量实现,有什么区别
synchornised 是用互斥量和条件变量实现的,
信号量 也是用互斥量和条件变量实现的
两者有什么区别?
C的pthread库里面 只有互斥量、条件变量 没有信号量
C++新的标准库里面 只有互斥量、条件变量 没有信号量
Java标准库里面 有互斥量(Lock对象)、条件变量、synchornised语法、信号量
PV理论里面
PV操作的是信号量。
和互斥量、条件变量是什么关系?
P操作 pass = wait = down
V操作 release = signal/notify = up
--
修改:PlutoKey FROM 223.104.68.*
FROM 27.46.2.*
咱能写对关键字么?
【 在 PlutoKey (铠甲勇士) 的大作中提到: 】
: synchornised 是用互斥量和条件变量实现的,
: 信号量 也是用互斥量和条件变量实现的
: 两者有什么区别?
: ...................
--
FROM 103.107.216.230
我查一下字典
synchronized 信科来此得
字面意思是 same time 同时
syn = same,
chorn = time
(cornus克诺罗斯 = 宙斯的父亲,被宙斯推翻,最后沦为掌管时间之神。
所以科恩罗斯corn就是时间,时间就是科恩罗斯corn,时间和科恩是两位一体)
英语中把 corn 写成 cron,是因为写错了。
【 在 PaoloMaldini 的大作中提到: 】
: 咱能写对关键字么?
:
--
修改:PlutoKey FROM 27.46.2.*
FROM 27.46.2.*
人家叫Chronos,synchronized也是chron,所以英语cron没有错,还是那句话,能把关键词写对了吗
【 在 PlutoKey (铠甲勇士) 的大作中提到: 】
: 我查一下字典
:
: synchronized 信科来此得
: 字面意思是 same time 同时
--
FROM 1.202.22.*
你不要把这些东西混在一起,他们差别很大。你要具体情况具体说,你不要把不同语言或者不同操作系统的东西混在一起。比如信号量这个东西在linux c programming中我们通常指的是System V Semaphores,一个特别古老玩意儿,今天已经没人用了,你在java当中也找不到。
如果你换在windows上看,windows c programming里面的临界区、mutex、读写锁是三个不同的概念,你没办法把它们映射到java或者Linux c programming的概念中。顺便说一句,windows上的读写锁不是pthread里面的读写锁。Windows的读写锁就是作为mutex的替代而设计的。
你要搞清楚这些概念,就一个个的单独学。比如Windows你可以看Windows Via C/C++这本书。Java你就看doug lea的著作。在一个学懂之前不要看下一个。
【 在 PlutoKey 的大作中提到: 】
: synchornised 是用互斥量和条件变量实现的,
: 信号量 也是用互斥量和条件变量实现的
: 两者有什么区别?
: ...................
--
FROM 107.139.34.*