Сходство потоков в Linux

Я сделал приложение в c, которое создает 4 потока. Как я могу проверить, какой поток работает на каком ядре через терминал и через код.


person Barinder Grewal    schedule 29.12.2015    source источник
comment
Вы пробовали pthread_getaffinity_np() ? man7.org/linux/man-pages/man3/pthread_setaffinity_np.3. html   -  person Sergei Kulik    schedule 29.12.2015
comment
Возможный дубликат stackoverflow.com/questions/16381138/   -  person roottraveller    schedule 29.12.2015
comment
Обычно ОС распределяет потоки между разными ЦП, поэтому любой ЦП, на котором она работает прямо сейчас, может быть или не быть тем же ЦП, на котором она работает через миллисекунду. Однако вы можете контролировать сходство потоков с помощью потоков POSIX, которые поддерживает Linux, или вы можете использовать, например, инструмент вроде htop для назначения потоков/процессов процессорам.   -  person Ulrich Eckhardt    schedule 29.12.2015
comment
@SergeiKulik pthread_getaffinity_np() всегда возвращает 0, хотя я устанавливаю сходство с помощью pthread_setaffinity_np().   -  person Barinder Grewal    schedule 30.12.2015
comment
Что справочная страница говорит об этом конкретном возвращаемом значении?   -  person Ulrich Eckhardt    schedule 30.12.2015


Ответы (1)


Я нашел ответ о том, как проверить это с помощью терминала.
/home# for i in $(pgrep applicationName); do ps -mo pid,tid,fname,user,psr -p $i;done

person Barinder Grewal    schedule 30.12.2015