[問題] 關於thread 調用問題

看板C_and_CPP (C/C++)作者 (蔥頭)時間11年前 (2015/03/10 17:21), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
Hi, 想請問一各位大大, 最近再練習thread功能的撰寫, 請問一下thread被分配到的cpu是可以指定的嗎? 還是經由os自行分配呢? 假設我開了4個thread, 同時有4顆cpu, 想讓4顆cpu都維持高使用率, 需要去指定,能夠去指定嗎? 謝謝 ~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.69.59.91 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1425979311.A.49F.html

03/10 17:28, , 1F
4顆CPU? 4核CPU? 印象中thread沒辦法, process才有辦法
03/10 17:28, 1F

03/10 18:05, , 2F
如果是pthread有pthread_setaffinity_np (3)可以用
03/10 18:05, 2F

03/10 18:08, , 3F
_np (non-portable) 代表他是非標準的extension
03/10 18:08, 3F

03/10 18:57, , 4F
那os不會自己分配嗎?
03/10 18:57, 4F

03/10 21:49, , 5F
windows: SetThreadAffinityMask
03/10 21:49, 5F

03/10 21:50, , 6F
通常不需要自己去設定,除非你要增加 cache hit rates
03/10 21:50, 6F

03/10 21:50, , 7F
絕大部分情況,由作業系統分配效果都已經夠好了
03/10 21:50, 7F

03/10 21:51, , 8F
mask:一個bit代表一顆cpu,0x03就第一,二顆
03/10 21:51, 8F

03/10 22:34, , 9F
恩恩, 了解了, 感謝各位
03/10 22:34, 9F
文章代碼(AID): #1K_hUlIV (C_and_CPP)
文章代碼(AID): #1K_hUlIV (C_and_CPP)