|
|
1
7
这个
您可以在源代码中看到这一点:
|
|
2
2
虽然您可以查看实际的源代码,但可以猜测它可能是:
简而言之,如果扩展mythread并重写run(),将调用run()方法。如果您传递的是runnable,mythread的run()方法将只委托给该runnable的run()方法。 |
|
|
3
1
在这两种情况下都必须有具体的线程类。在第一种情况下(实现runnable),使实现它的类能够成为线程。您仍然必须将类作为参数传递给线程类的构造函数。然而,这不是第二种情况下扩展线程类的情况。 调用start()方法时,不能保证立即调用run()方法。调用start()方法表示线程已准备好运行。之后,它可以根据线程池器转到任何状态。
FY:
|
|
|
4
1
你可以查一下
目标是:
但我认为你真正想要的答案是线程如何工作的细节。不幸的是,这在本机库中被抽象出来了。试着对线程的工作原理有一个更高层次的理解。 |
|
|
5
1
有一件事还没有被答案探究,那就是事情是如何从
简单来说,
这个细节让事情变得更加复杂,错误处理和模糊的边缘情况都需要处理。如果你好奇,请阅读
OpenJDK
来源,特别注意
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |