2013-02-14 268 views
1

我正在爲一個Linux內核編寫內存管理器,該內核共享線程之間的PID循環列表(學校項目)。 這個程序發現殭屍並殺死他們使用1生產者,2消費者模型。 (強加於我們以便我們可以理解共享內存)。函數可以鎖定互斥鎖嗎?

我想使這個列表成爲一個對象,並具有處理迭代指針和檢查單元格值的函數。

那麼,如果一個線程調用一個外部函數,那麼這個函數是否可以擁有這個互斥量呢?還是必須從線程內完成?

我是否認爲這完全錯了?

由於大部分 -Jared

回答

3

說,一個「功能」已經擁有了mutex沒有引起太大的意義。它是擁有它的線程。所以是的,這是可能的,無論什麼線程稱爲外部函數都會擁有互斥鎖。

如果您在執行線程的代碼中查看,您將看到它的一個變量是它擁有的互斥列表。

+0

謝謝。我是多線程新手,所以我不太懂得怎麼說。我只是想確保內核不會被外部函數中的互斥鎖所困惑。 – Jared 2013-02-14 18:25:55

+0

np。如果您滿意,請將問題標記爲已回答 – 75inchpianist 2013-02-14 18:34:21

+0

最後一件事:我是否需要將互斥鎖作爲參數傳遞?我正在頭文件中聲明這些函數。 – Jared 2013-02-14 19:44:15