在我的應用程序中,我需要利用多個線程使其工作得更快,但我一直面臨一種情況,它說無法創建本地線程。 我讀過它是決定程序可以擁有的線程數的RAM,它取決於每個線程的線程數*堆棧大小。無法在創建2700個線程後創建本地線程
我們如何知道Java中線程的堆棧大小?我可以自己決定線程的堆棧大小嗎?
在我的應用程序中,我需要利用多個線程使其工作得更快,但我一直面臨一種情況,它說無法創建本地線程。 我讀過它是決定程序可以擁有的線程數的RAM,它取決於每個線程的線程數*堆棧大小。無法在創建2700個線程後創建本地線程
我們如何知道Java中線程的堆棧大小?我可以自己決定線程的堆棧大小嗎?
您可以創建的本機線程數取決於操作系統。這就是操作系統阻止你去到如此巨大的數量,而不是內存大小。
這就是我想知道的。操作系統的限制是什麼? – Krishna
該數字不僅取決於操作系統,還取決於底層硬件。因此在編譯時知道這個數字是否真的有意義? –
我懷疑有一種方法可以找出確切的數字。 –
沒有足夠的信息讓我們嘗試重現,甚至完全理解您的問題。嘗試分享您遇到的一些代碼和/或異常消息。 –
如果您需要創建2700個線程,最有可能是您遇到問題...... – Dariusz
在2700個線程中,上下文切換的開銷可能會讓您的程序變慢*。嘗試使用系統內省來獲取CPU核心的數量併爲每個核心啓動一個線程。 – Anthony