我正在为 linux 内核编写一个内存管理器,它在线程之间共享一个循环的 PID 列表(学校项目)。 该程序使用 1 个生产者、2 个消费者模型找到僵尸并杀死它们。 (强加给我们,这样我们才能理解共享内存)。
我想让这个列表成为一个对象,并让函数处理迭代指针和检查单元格的值。
那么,如果一个线程调用了一个外部函数,那么这个函数是否可以拥有这个互斥量呢?还是必须在线程内完成?
我是不是完全错了?
非常感谢 -贾里德
最佳答案
说“函数”拥有互斥锁是没有意义的。它是拥有它的线程。所以是的,有可能,调用您的外部函数的任何线程都将拥有互斥量。
如果您查看线程实现的内核代码,您会发现其中一个变量是它拥有的互斥体列表。
关于函数可以锁定互斥量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14881247/