Ale*_* N. 5 java multithreading
我尝试了一些示例代码:
Thread thread = new TestThread();
thread.start();
thread.isAlive();
Run Code Online (Sandbox Code Playgroud)
在我看来,isAlive()调用返回false的唯一方法是线程已经完成.这是真的?
Java 7 JavaDoc for start:
导致此线程开始执行; Java虚拟机调用此线程的run方法.结果是两个线程并发运行:当前线程(从调用start方法返回)和另一个线程(执行其run方法).
不止一次启动一个线程永远不合法.特别是,一旦完成执行,线程可能无法重新启动.
适用于isAlive的Java 7 JavaDoc:
测试此线程是否存活.如果线程已经启动并且尚未死亡,则该线程处于活动状态.
这些对我来说都不是很有说服力.
someThread.start()将导致该线程进入可运行状态run在start()调用后立即开始执行其方法.someThread.start()被调用时,线程可以从运行的移动到乳宁州,甚至等待状态.测试此线程是否存活.如果线程已经启动并且尚未死亡,则该线程处于活动状态.
这意味着,线程在start()被调用并且run()尚未完成时仍处于活动状态.run()方法的完成意味着线程已经死了.
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |