常用命令
jps:列出所有正在运行的java进程,其中jps命令也是一个java程序,前面的数字就是对应的进程id。
jstack PID 查看某个进程的所有线程状态
jconsole 查看某java进程中线程运行状态cmd中
Linux中
ps [options] [–help]
ps -ef 当前所有的进程。
A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程
start()重复调用会报错IllegalThreadStateException
判断是否线程被打断了
Thread.currentThread().isInterrupted()
守护线程
只要其他非守护线程都结束了,守护线程就算没执行完都会强制结束
setDaemon(True)
竞态条件
一段代码块中如果存在对共享资源的多线程读写操作,该代码块为临界区
多个线程在临界区内执行,由于代码的执行顺序不同而导致结果无法预测,则发生了竞态条件
Synchronizated
不公平锁
synchronizated(对象){
临界区
}