同步和锁的概念,如何理解?
《程序员的自我修养》一书中在 同步和锁 章节有段话,我不理解,声明一下,我并没有编写过多线程等项目的代码,所以还请诸位帮忙理解一下。
临界区:临界区和互斥量与信号量的区别在于,互斥量和信号量在系统的任何进程里都是可见的,也就是说,一个进程创建了一个互斥量或信号量,另一个进程试图去获取该锁是合法的。然而,临界区的作用范围仅限于本进程,其他的进程无法获取该锁。
我的困惑:不论是互斥量或信号量,都是为本进程的线程同步用的,为什么会有跨进程的使用呢,意思是,A进程创建的互斥量或信号量,什么在B进程里会用到呢?
[解决办法]
因为有可能会涉及到进程间的同步,比如B进程需要等A进程完成了某些操作,它才可以做某些事,此时需要用到进程间的同步。互斥量和信号量就派上用场了。