4
我有一個關於POSIX線程堆棧大小夫婦的問題和他們的安全問題:POSIX線程堆棧內存 - 我們可以有不同的堆棧大小和安全問題嗎?
A),我們可以有不同的堆棧大小(使用每個線程集:pthread_attr_getstacksize)?
B)當線程死亡(分離/退出)時,操作系統是否會收回其內存頁?
C)如果一個線程碰巧在虛擬內存映射中彼此相鄰,它是否可以繼續寫入另一個線程堆棧段?
我有一個關於POSIX線程堆棧大小夫婦的問題和他們的安全問題:POSIX線程堆棧內存 - 我們可以有不同的堆棧大小和安全問題嗎?
A),我們可以有不同的堆棧大小(使用每個線程集:pthread_attr_getstacksize)?
B)當線程死亡(分離/退出)時,操作系統是否會收回其內存頁?
C)如果一個線程碰巧在虛擬內存映射中彼此相鄰,它是否可以繼續寫入另一個線程堆棧段?
A)是的,當然,這就是pthread_attr_setstacksize
的目的。 B)是的,調用pthread_detach
或pthread_join
會導致線程資源在終止時被回收。
C)理論上是的,但是由於在大多數系統中堆棧向後(從高地址到低地址)增長,你必須做某種緩衝區溢出才能擺脫當前的堆棧空間。