-
公开(公告)号:CN105511969A
公开(公告)日:2016-04-20
申请号:CN201510834063.1
申请日:2015-11-25
Applicant: 中国船舶工业系统工程研究院
IPC: G06F9/52
Abstract: 本发明涉及一种跨进程的线程间进行互斥的方法,包括以下步骤:多个线程竞争互斥信息,胜出的线程初始化互斥信息;当胜出的线程获得互斥信息之后,利用互斥信息对临界区进行加锁操作;进行加锁操作后,线程获得互斥信息的锁,访问共享资源;同时,其它线程进行等待;线程使用完共享资源之后,离开临界区,进行解锁操作;互斥信息继续被其它线程竞争,重复上述步骤。所述方法结合了信号量机制,确保了加锁、解锁的原子性,使得该方法是线程安全的;有效的解决了互斥信息垃圾值问题,避免了线程在使用时获取了垃圾值而导致异常的问题;解决了加锁时自身向自身索要锁而导致死锁的问题,同时也避免了越权限解锁的问题。
-
公开(公告)号:CN105511969B
公开(公告)日:2020-05-19
申请号:CN201510834063.1
申请日:2015-11-25
Applicant: 中国船舶工业系统工程研究院
IPC: G06F9/52
Abstract: 本发明涉及一种跨进程的线程间进行互斥的方法,包括以下步骤:多个线程竞争互斥信息,胜出的线程初始化互斥信息;当胜出的线程获得互斥信息之后,利用互斥信息对临界区进行加锁操作;进行加锁操作后,线程获得互斥信息的锁,访问共享资源;同时,其它线程进行等待;线程使用完共享资源之后,离开临界区,进行解锁操作;互斥信息继续被其它线程竞争,重复上述步骤。所述方法结合了信号量机制,确保了加锁、解锁的原子性,使得该方法是线程安全的;有效的解决了互斥信息垃圾值问题,避免了线程在使用时获取了垃圾值而导致异常的问题;解决了加锁时自身向自身索要锁而导致死锁的问题,同时也避免了越权限解锁的问题。
-