java.lang.OutOfMemoryError:pthread_create(1040KB堆栈)失败:试试

时间:2017-07-24 04:20:45

标签: java android kotlin

当我调用threadExecutor方法大数

String

它将导致此错误提示, fun startAnimation(): Unit { sPool.scheduleAtFixedRate(taskQu, 0, 1000, TimeUnit.MILLISECONDS) } 是java ThreadExecutors

sPool

val sPool = Executors.newScheduledThreadPool(2)!!是异步计时器任务

taskQu

我得到了这个提示

 val taskQu = object : TimerTask() {
    override fun run() {

        uihandler.obtainMessage().sendToTarget()

    }
}

那么,关于这个问题的问题出现了吗?

1 个答案:

答案 0 :(得分:1)

我使用下面的程序做了同样的事情并且工作正常:

public class ThreadExecutionTest {

/**
 * @param args
 */
ScheduledExecutorService executor=Executors.newScheduledThreadPool(2);


public static void main(String[] args) {
    // TODO Auto-generated method stub
    ThreadExecutionTest test=new ThreadExecutionTest();
    test.executeThread();

}

public void executeThread() {
    Runnable task=()-> System.out.println("executing thread "+Thread.currentThread().getName() );
    executor.scheduleAtFixedRate(task, 0, 1000, TimeUnit.MILLISECONDS);

}

}

你得到的异常是OutofMemoryError,因为在每秒之后都会创建多个线程,所以在某个时候之后它会抛出这个错误。 请检查您声明的位置" val sPool = Executors.newScheduledThreadPool(2)!!",如果在方法内部声明,则将其删除并在方法外声明它。(在类级别声明) 。