Java中的互斥和信号量是什么?主要区别是什么?
发布于 2009-04-21 06:58:24
信号量可以计数,而互斥量只能计数到1。
假设您有一个正在运行的线程,该线程接受客户端连接。该线程可以同时处理10个客户端。然后每个新客户端设置信号量,直到信号量达到10。当信号量有10个标志时,线程将不接受新的连接
互斥通常用来保护东西。假设您的10个客户端可以访问系统的多个部分。然后,您可以使用互斥保护系统的一部分,以便当一个客户端连接到该子系统时,其他任何人都不应该有访问权限。你也可以使用一个信号量来达到这个目的。互斥体是一个"Mutual Exclusion Semaphore"。
发布于 2009-04-21 06:57:54
互斥量用于对资源的串行访问,而信号量将对资源的访问限制为一个设定值。你可以把一个互斥锁想象成一个信号量,它的访问次数为1。无论你把信号量的计数设为什么值,线程都可以在资源被阻塞之前访问该资源。
发布于 2009-04-21 06:56:48
信号量是一种计数同步机制,而互斥锁不是。
https://stackoverflow.com/questions/771347
复制相似问题