jjzjj

TestRunnable

全部标签

java - 如果我们直接调用 run 方法会发生什么?

我有一个“TestRunnable”类,它通过实现Runnable来覆盖run方法。运行覆盖的运行方法,如下所示:TestRunnablenr=newTestRunnable();Threadt=newThread(nr);t.setName("Fred");t.start();如果我直接调用t.run();如果我们不调用t.start();会发生什么? 最佳答案 run方法只是另一种方法。如果你直接调用它,那么它不会在另一个线程中执行,而是在当前线程中执行。这是我的测试TestRunnable:classTestRunnablei

ThreadPoolExecutor优先级队列PriorityBlockingQueue

前两天重构代码,调试的时候,发现有个使用到线程池的地方抛出java.lang.ClassCastException:java.util.concurrent.FutureTaskcannotbecastto异常这个代码是线上在跑的一个逻辑,不该出现问题才对,最后还是翻了下源码确定原因原因:之前向线程池提交任务用的是execute方法,复制的时候错用成了submit方法,改回execute方法即可既然遇到了,顺便记录下自定义提交到线程池的任务@Data@AllArgsConstructorclassTestRunnableimplementsRunnable{privateIntegeri;@O