我只是將線程添加到我多年來一直在開發的大型應用程序中。它用C語言編寫,可在Mac和Linux上運行。這個問題是關於OS X,10.8.2或10.6.8。在Mac OS X上執行線程,強制執行多個CPU
問題:我看到程序按照我的預期打開兩個線程。然而,顯然兩個線程都運行在同一個CPU上,或者至少,我從來沒有得到超過100%的CPU分配給該程序。這幾乎破壞了線程的全部目的。
我使用了相當數量的互斥鎖,如果這很重要的話。
如何強制操作系統在不同CPU的100%運行每個線程? (此機器上有8個CPU。)
也許你的線程根本不會做任何會導致大負載的東西?也許你正在睡覺或等待其他事件過多(使用過多的互斥體可能意味着線程化設計不是最好的)? –
你的目標有缺陷。 –
Joachim Pileborg:謝謝你的回答。這兩個線程都做了很多工作。沒有睡覺。我的感覺是,等待互斥的時間百分比非常小。 – rfermat