9206人阅读
Linux(16)
下面这是一段java代码,
public class Z
& & public static void main(String[] args)
& & & & new Z();
& & private Z()
& & & & Z a1=
& & & & Z a2=
& & & & synchronized(a1)
& & & & & & try
& & & & & & {
& & & & & & & & a2.wait();
& & & & & & & & System.out.println(&done waiting&);
& & & & & & }
& & & & & & catch (InterruptedException e)
& & & & & & {
& & & & & & & & System.out.println(&InterruptedException&);
& & & & & & }
& & & & & & catch (Exception e)
& & & & & & {
& & & & & & & & System.out.println(&Exception&);
& & & & & & }
& & & & & & finally
& & & & & & {
& & & & & & & & System.out.println(&finally&);
& & & & & & }
& & & & System.out.println(&all done&);
编译后运行
没有任何输出,程序也不会结束。
ps看了一下状态,发现状态是sl+,
在Linux中,状态如下:
& & D & &不可中断 & & Uninterruptible sleep (usually IO)
& & R & &正在运行,或在队列中的进程
& & S & &处于休眠状态
& & T & &停止或被追踪
& & Z & &僵尸进程
& & W & &进入内存交换(从内核2.6开始无效)
& & X & &死掉的进程
& & & & &高优先级
& & N & &低优先级
& & L & &有些页被锁进内存
& & s & &包含子进程
& & + & &位于后台的进程组
& & l & &多线程,克隆线程
根据以上信息,得知其处于休眠状态,多线程,且是后台进程。
我们知道Java中,
wait():让线程处于等待状态。这时线程会释放锁。并存入到了线程池中。
notify():通常唤醒线程池中的第一个。
notifyAll():将线程池中的所有等待线程都唤醒。
所以在wait的时候,此线程休眠等待其他线程notify,所以就处于休眠状态了。
转载请注明出处:
作者:hongchangfirst
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:980786次
积分:9897
积分:9897
排名:第1397名
原创:247篇
评论:114条
文章:22篇
阅读:43583
(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(2)(1)(1)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(3)(5)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(5)(4)(5)(4)(3)您的举报已经提交成功,我们将尽快处理,谢谢!
P.S.是英语postscript的缩写,post-是在后,迟于,而script有手写稿的意思,这个词在你所讲的情况中是文章的附录、附言、注释的意思。
我是一名普通的公民.作为中华人民共和国的一员,对社会都应赋有一定的责任和义务,对于血液十分紧张的天津北京来说,我们更有义务要为处在生命垂危的病人奉献我们...
弄了张给你
【1】PS字体
?【2】Photoshop软件
?【3】文件格式
?【4】游戏机
?【5】政治科学
?【6】材料
?【7】英语缩写
?【8】常用语...
大家还关注