导航:首页 > 编程语言 > java线程是否结束

java线程是否结束

发布时间:2024-11-07 06:33:06

1. java线程执行完后自己结束吗

线程一启用成功,就会自动关闭线程句柄.
但是,如果线程中有死循环.线程是不会运行完就结束的.
因为未跳出子程序.所以结束不了线程.反之,跳出子程序了就说明自动结束了线程.
死循环子程序的解决方法.可以用强制结束线程 ()或用变量来结束线程.

2. Java中线程的几种可用状态有哪些请大家解释一下。

线程在执行过程中,可以处于下面几种状态:
1、就绪(Runnable):线程准备运行,不一定立马就能开始执行。
2、运行中(Running):进程正在执行线程的代码。
3、等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
4、睡眠中(Sleeping):线程被强制睡眠。
5、I/O阻塞(BlockedonI/O):等待I/O操作完成。
6、同步阻塞(BlockedonSynchronization):等待获取锁。
7、死亡(Dead):线程完成了执行。

3. java线程执行完后自己结束吗

其实最佳答案的说法是有问题的,如果题主指的结束,是指方法块语句的执行结束的话,热心网友的说法是对的。但是对于线程本身,所有线程(包括主线程)在启动后都被CPU参照优先级交替调用,运行的顺序是无法预测的,但最后结束的一定是主线程。
网上有部分说法,展示的代码运行结果,“主线程先于其他线程结束,并不影响其他线程的运行”只有后半部分是对的。因为方法体(不管是自定义线程的run()还是主线程的main())中全部语句的执行完毕不代表所在线程的结束,可以用activeCount()返回当前运行的总线程数来验证这一点。另外,如果将自定义的线程对象设定为守护线程(setDeamon()),也可以很清楚看到即便main()方法中最后一句输出语句执行完毕,控制台仍会根据该自定义线程run()方法体的内容继续输出,这证明主线程还没结束——因为当线程组中只剩下守护线程时,JVM虚拟机会自动退出,如果主线程已经结束,唯一活动的线程在被设置成守护线程的情况下,程序会直接结束运行,不可能继续输出。

4. 基于java 线程的几种状态

下面是java 线程的5种状态:

1、新建(new)

新建一个线程的对象。

2、可运行(runable)

线程对象创建后,其他线程调用该线程的start方法。或者该线程位于可运行线程池中等待被线程调用,已获取cpu的使用权。

3、运行(running)

可运行的线程获取了cpu的使用权,执行程序代码

4、阻塞(block)

由于某些原因该线程放弃了cpu的使用权。停止执行。除非线程进入可运行的状态,才会有机会获取cpu的使用权。

(1)等待阻塞:运行中的线程执行wait方法,这时候该线程会被放入等待队列。

(2)同步阻塞:运行中的线程获取同步锁,如果该同步锁被别的线程占用,这个线程会成被放入锁池,等待其他线程释放同步锁。

(3)其他阻塞:运行的线程执行sleep或者join方法这个线程会成为阻塞状态。当sleep超时,join等待线程终止,该线程会进入可运行状态。

5、死亡(dead)

线程run mian 执行完毕后,或者因为某些异常产生退出了 run 方法,该线程的生命周期结束。

阅读全文

与java线程是否结束相关的资料

热点内容
xps文件转pdf 浏览:132
怎么样获得命令方块 浏览:897
安卓studio如何改主题 浏览:931
linux自动获取ip命令行 浏览:208
做设计做程序员适合的电脑 浏览:778
网站有源码和没有源码的区别 浏览:680
如何自学开发app 浏览:595
修电梯pdf 浏览:351
政务云是不是提供虚拟服务器 浏览:59
在哪里看每个app用了多长时间 浏览:637
学程序员要英语四级吗 浏览:133
java视频录制 浏览:758
口头指派式命令 浏览:474
php开发工程师面试题 浏览:954
linux内核源码pdf 浏览:66
mc命令方块怎么提取 浏览:367
有关程序员的五大魔咒你中了几个 浏览:204
本地文件如何上传linux服务器 浏览:17
传奇资源网站源码 浏览:377
f26app怎么下载 浏览:120