2011-05-31 58 views
4

Linux的存在sched.h中定義的了sched_setaffinity()功能,但我似乎無法找到這樣的事情在的Mac OS X 10.6並行線程實現......如果不是可能設置親和力,OS X中的默認策略是什麼?是否可以在OS X中設置pthread CPU親和力?

+0

看到這個博客:HTTP:/ /yyshen.github.io/2015/01/18/binding_threads_to_cores_osx.html – jackb 2016-04-08 17:45:17

回答

5

的Mac OS X有Thread Affinity API,您可以用並行線程ID使用它作爲thread_policy_set(pthread_mach_thread_np(pthreadId),但是,據我所知,有喜歡的了sched_setaffinity沒有API的

+0

它是否真的與pthreads兼容?! – Ryan 2011-05-31 07:50:02

+1

到底是什麼?我看了一下Mac OS X 10.6 SDK的/usr/include/mach/thread_policy.h並發現thread_policy_set()/ thread_policy_get()函數被註釋掉了!這是什麼意思?! – Ryan 2011-05-31 08:01:30

+0

它真的與pthread兼容。請看看/Developer/Extras/CoreAudio/PublicUtility/CAPThread.cpp或谷歌「thread_policy_set pthread_mach_ thread_np」。而thread_policy_set/thread_policy_get位於/Developer/SDKs/MacOSX10.6.sdk/usr/include/mach/x86_64/thread_act.h。無論如何,這些API與sched_setaffinity不一樣。 – 2011-05-31 11:28:12