java - 将堆栈大小设置为线程似乎在android中没有什么区别

标签 java android

我使用以下线程 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/

相关文章:

java - 从@ElementCollection 中搜索一个对象

java - 我可以运行两个 EDT 吗?

java - Gradle 初始同步失败 NullPointerException

java - 更改 Java 方法中传递的参数值?

java - 调用 mock 时的 NPE

java - Spring Scheduler 示例(Spring boot 和 Vaadin 14 项目)

java - 用 JNI 包装 C++ 库

java - IndexOutOfBoundException 在 recyclerview 上检测到不一致

java - 如何解析 WebappClassLoaderBase

android - 初始化具有 getter 和 setter 的字段?