课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习java编程开发语言,而今天我们就通过案例分析来了解一下,java编程开发线程的状态类型。
线程有6种状态,用枚举类State来表示:
NEW(新创建)
RUNNABLE(可运行)
BLOCKED(被阻塞)
WAITING(等待)
TIMED_WAITING(计时等待)
TERMINATED(被终止)
用getState()方法可以获取到线程的状态。
新创建线程
new一个线程的时候,线程还没开始运行,此时是NEW(新创建)状态。在线程可以运行前,还有一些工作要做。
可运行线程
一旦调用start()方法,线程处于RUNNABLE(可运行)状态。调用start()后并不保证线程会立刻运行,而是要看操作系统的安排。
一个线程开始运行后,它不一定时刻处于运行状态。操作系统可以让其他线程获得运行机会。一个可运行的线程可能正在运行也可能没在运行。
被阻塞和等待
线程处于被阻塞和等待状态时,它暂时不活动。不运行代码,且只消耗少的资源。直到线程调度器重新激活它。
一个线程试图获取一个内部的对象锁,而该锁被其他线程持有,则这个线程进入阻塞状态。当这个锁被释放,并且线程调度器允许这个线程持有它,该线程变成非阻塞状态。
当线程等待另一个线程通知调度器,它自己进入等待状态。例如调用Object.wait()或者Thread.join()方法。
带有超时参数的方法可让线程进入超时等待状态。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。