我使用以下线程 api 来设置堆栈大小,假设我分配 1 或 64 或一些小值,以便我可以模拟 stackoverflow 异常,但设置的值似乎没有任何区别。
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
最佳答案
javadoc 文档说您不能期望任何特定的行为,因此您必须进行试验。
我还没有测试过小数字,但在 Android 中创建一个线程
new Thread(getMainLooper().getThread().getThreadGroup(), myRunnableThatNeedsLotOfStack, "My Thread", 65536)
导致在主线程中运行时会出现 StackOverflowError 的 runnable 能够顺利通过,所以我猜你可以在 Android 中将线程的堆栈大小设置为 64K。
关于java - 将堆栈大小设置为线程似乎在android中没有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7453336/