2016-11-24 50 views
0

我的問題是,如果一個線程需要自己的寄存器集,那麼可以同時創建多少個線程,因爲CPU中存在的寄存器集是有限的?主題所需的寄存器集

+1

很多,因爲當操作系統切換線程時,它將前一個線程的寄存器存儲在其他地方... –

+0

另請參見https://en.wikipedia.org/wiki/Context_switch – xmojmr

+0

線程上下文存儲是非常小的土豆比較到一個兆字節以北的用戶和內核模式堆棧所需的地址空間。一個32位的進程往往會在2000多個線程中耗盡。更多的是64進程,通常受頁面文件大小限制。適合平常的「如果你需要知道,那麼你做錯了」的診斷。 –

回答

0

處理器具有一組通用寄存器,它們由所有線程/進程共享。

大多數處理器都具有保存和加載進程上下文指令,這些指令可以將寄存器保存(或加載)到一塊內存中。將進程上下文加載到寄存器中的行爲是切換進程/線程的行爲。