Linux里面ll和ls -al区别是什么?
两者都会以列表的形式显示目录下的文件名,但ll不显示隐藏文件,ls -al命令会显示隐藏文件。
ll是别名,通过alias命令,可看出其原形是“ls -l --color=auto”,选项-l的意思是以列表的形式呈现;而ls -al命令,则还有个-a选项,意思是还会显示隐藏文件。
运行效果与手册内容
参考资料:
一、线程5种状态
新建状态(New) 新创建了一个线程对象。
就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。
阻塞状态(Blocked) 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。
同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。
二、Jstack中常见的线程状态
应用程序启动后,我们对系统运行状况的观测大部分情况下是通过运行日志。但是若某一天发现,日志中记录的行为与预想的不一致,此时需要进一步的系统监控该怎么办,Jstack是常用的排查工具,它能输出在某一个时间,Java进程中所有线程的状态,很多时候这些状态信息能给我们的排查工作带来有用的线索。?
Jstack的输出中,Java线程状态主要是以下几种:
RUNNABLE?线程运行中或I/O等待
BLOCKED?线程在等待monitor锁(synchronized关键字)
TIMED_WAITING?线程在等待唤醒,但设置了时限
WAITING?线程在无限等待唤醒
1) 让线程一直处于RUNNABLE
public?static?void?runnable()?{long?i?=?0;
while?(true)?{
i++;
}
}
2) 让线程一直处于BLOCKED
public?static?void?blocked()?{final?Object?lock?=?new?Object();
new?Thread()?{
public?void?run()?{
synchronized?(lock)?{
System.out.println("i?got?lock,?but?don't?release");
try?{
Thread.sleep(1000L?*?1000);
}?catch?(InterruptedException?e)?{
}
}
}
}.start();
try?{?Thread.sleep(100);?}?catch?(InterruptedException?e)?{}
synchronized?(lock)?{
try?{
Thread.sleep(30?*?1000);
}?catch?(InterruptedException?e)?{
}
}
}
主线程sleep,先让另外一个线程拿到lock,并长期持有lock(sleep会持有锁,wait不会)。此时主线程会BLOCK住等待lock被释放,此时jstack的输出可以看到main线程状态是BLOCKED。这里要注意的是只有synchronized这种方式的锁(monitor锁)才会让线程出现BLOCKED状态,等待ReentrantLock则不会。
3)?让线程处于TIMED_WAITING状态
public?static?void?timedWaiting()?{final?Object?lock?=?new?Object();
synchronized?(lock)?{
try?{
lock.wait(30?*?1000);
}?catch?(InterruptedException?e)?{
}
}
}
4)让线程处于WAITING状态
public?static?void?waiting()?{final?Object?lock?=?new?Object();
synchronized?(lock)?{
try?{
lock.wait();
}?catch?(InterruptedException?e)?{
}
}
}
无超时的等待,必须等待lock.notify()或lock.notifyAll()或接收到interrupt信号才能退出等待状态。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!