2013-10-25 100 views
-2

在我的應用程序中,我需要利用多個線程使其工作得更快,但我一直面臨一種情況,它說無法創建本地線程。 我讀過它是決定程序可以擁有的線程數的RAM,它取決於每個線程的線程數*堆棧大小。無法在創建2700個線程後創建本地線程

我們如何知道Java中線程的堆棧大小?我可以自己決定線程的堆棧大小嗎?

+4

沒有足夠的信息讓我們嘗試重現,甚至完全理解您的問題。嘗試分享您遇到的一些代碼和/或異常消息。 –

+4

如果您需要創建2700個線程,最有可能是您遇到問題...... – Dariusz

+0

在2700個線程中,上下文切換的開銷可能會讓您的程序變慢*。嘗試使用系統內省來獲取CPU核心的數量併爲每個核心啓動一個線程。 – Anthony

回答

2

您可以創建的本機線程數取決於操作系統。這就是操作系統阻止你去到如此巨大的數量,而不是內存大小。

+0

這就是我想知道的。操作系統的限制是什麼? – Krishna

+1

該數字不僅取決於操作系統,還取決於底層硬件。因此在編譯時知道這個數字是否真的有意義? –

+1

我懷疑有一種方法可以找出確切的數字。 –

相關問題