thrd.isAlive();理解为:线程方法Run();还在进行。
2018-01-17 13:54
274 查看
“thrd.isAlive();返回值为真”,的错误理解,线程还存活,一个线程创建成功,但是,还没有开始运行run();方法,这个时候thrd.isAlive();为false。。。正确的理解应该为:thrd.isAlive();是测试线程的run();方法是否还在进行,还在进行返回true,运行完返回false,还没有开始运行返回false。。。
下面的运行结果可以知道,run()运行完也不一定thrd.isAlive就返回false。。。因为thrd.isAlive();是很多条指令组成的,可能在run();没有运行完时,得到false,在还没有打印到屏幕时,线程又切换到run();方法,run();方法运行完后,线程切换到打印之前的false到屏幕上。。。。
下面的运行结果可以知道,run()运行完也不一定thrd.isAlive就返回false。。。因为thrd.isAlive();是很多条指令组成的,可能在run();没有运行完时,得到false,在还没有打印到屏幕时,线程又切换到run();方法,run();方法运行完后,线程切换到打印之前的false到屏幕上。。。。
相关文章推荐
- java线程之isAlive方法,sleep方法,和getId方法
- 线程理解之经典,同时测试了isAlive的使用。
- 关于在子线程中在run方法执行完之后通知主线程进行操作的方法。(Toast在子线程中无法使用)
- Java并发04:Thread的基本方法(1)-Name、ThreadGroup、activeCount、isAlive、守护线程等
- Python线程isAlive方法
- 进程与线程的理解,以及run方法和start方法的区别
- angular-$rootScope与$scope-在多个控制器中进行全局诗句的初始化-run()方法使用
- 深入理解jQuery中live与bind方法的区别
- 是启动线程和调用线程的run方法
- 深入理解jQuery中live与bind方法的区别 unity3d资源
- java 线程中start方法与run方法的区别详细介绍
- 创建线程的几种方式,以及为什么启动线程不用run,而用start方法!!!
- 了解Java线程的start方法如何回调run方法
- Android开发笔记——线程的start和run方法
- java 线程 / 线程池的run 方法内Exception ,线程遇到Exception 则死,线程池中线程A遇到Exception 则线程A 变成 WAITING状态,仍能接受调度
- 调用线程对象的start()方法会执行run(),为什么不能直接调用run()方法??
- 用callback机制使线程的run()方法返回一个值[java net programming这本书中的思想]
- Java-线程Thread方法start()和run()
- Thread线程的深刻理解和代理方法参数[有图有真相]
- Java-线程Thread方法start()和run()