2011-05-31 1 views
4

Dans Linux il y a une sched_setaffinity() fonction définie dans sched.h, mais je ne peux pas sembler trouver quelque chose comme ça dans Mac OS X 10.6 pthreads mise en œuvre ... Si ce n'est pas possible de définir l'affinité, quelle est la politique par défaut dans OS X?Est-il possible de définir l'affinité CPU pthread sous OS X?

+0

Voir ce blog. Http://yyshen.github.io/2015/01/18/binding_threads_to_cores_osx.html – jackb

Répondre

5

Mac OS X a Thread Affinity API et vous pouvez l'utiliser avec ID pthread comme thread_policy_set (pthread_mach_thread_np (pthreadId), mais, autant que je sache, il n'y a pas d'API comme sched_setaffinity

+0

Est-il vraiment compatible avec les pthreads ?! – Ryan

+1

J'ai jeté un oeil à Mac OS X 10.6 SDK /usr/include/mach/thread_policy.h et a découvert que les fonctions thread_policy_set()/thread_policy_get() sont commentées! Quelle est la signification de ceci?! – Ryan

+0

Il est vraiment compatible avec pthread. S'il vous plaît regardez /Developer/Extras/CoreAudio/PublicUtility/CAPThread.cpp ou google "thread_policy_set pthread_mach_ thread_np ". Et thread_policy_set/thread_policy_get sont dans /Developer/SDKs/MacOSX10.6.sdk/usr/include/mach/x86_64/thread_act.h. Quoi qu'il en soit, ces API ne sont pas les mêmes que sched_setaffinity. –