CodeEggDailyInterview
CodeEggDailyInterview copied to clipboard
管程是什么?谈谈它的重要性。
管程的概念 1.管程可以看做一个软件模块,它是将共享的变量和对于这些共享变量的操作封装起来,形成一个具有一定接口的功能模块,进程可以调用管程来实现进程级别的并发控制。 2.进程只能互斥得使用管程,即当一个进程使用管程时,另一个进程必须等待。当一个进程使用完管程后,它必须释放管程并唤醒等待管程的某一个进程。 3.在管程入口处的等待队列称为入口等待队列,由于进程会执行唤醒操作,因此可能有多个等待使用管程的队列,这样的队列称为紧急队列,它的优先级高于等待队列。
管程的重要性 并发编程里两大核心问题——互斥和同步,都可以由管程来帮你解决。 学好管程,理论上所有的并发问题你都可以解决,并且很多并发工具类底层都是管程实现的, 所以学好管程,就是相当于掌握了一把并发编程的万能钥匙。