2024-04-29 08:53:25 | 我爱编程网
其实线程只有"就绪"、"阻塞"、"运行"三种状态:
1. 运行状态,线程正在干活的状态我爱编程网
2. 就绪状态,CPU正在忙活别的,线程摇晃着一个"恭候您光临"的小旗子的状态
3. 阻塞状态,线程主动让出CPU资源,摇晃着一个"我这会还不能出台您稍后再来"的小旗子的状态
"新建"和"终止"这两种状态其实并不是线程的状态,而是java.lang.Thread对象的状态。可以说,处于"新建"和"终止"状态的"线程"其实并不是线程,而只是一个代表着线程对象而已。
所以我们把"新建(NEW)"和"终止(TERMINATED)"两种状态去掉,那么Java定义的线程状态还有4种:
1. RUNNABLE
2. BLOCKED
3. WAITING
4. TIMED_WAITING
这四种状态怎么对应到"就绪"、"阻塞"、"运行"这三种状态里呢:
1. RUNNABLE,对应"就绪"和"运行"两种状态,也就是说处于就绪和运行状态的线程在java.lang.Thread中都表现为"RUNNABLE"
2. BLOCKED,对应"阻塞"状态,此线程需要获得某个锁才能继续执行,而这个锁目前被其他线程持有,所以进入了被动的等待状态,直到抢到了那个锁,才会再次进入"就绪"状态
3. WAITING,对应"阻塞"状态,代表此线程正处于无限期的主动等待中,直到有人唤醒它,它才会再次进入就绪状态
4. TIMED_WAITING,对应"阻塞"状态,代表此线程正处于有限期的主动等待中,要么有人唤醒它,要么等待够了一定时间之后,才会再次进入就绪状态
线程在执行过程中,可以处于下面几种状态:
1、就绪(Runnable):线程准备运行,不一定立马就能开始执行。
2、运行中(Running):进程正在执行线程的代码。
3、等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
4、睡眠中(Sleeping):线程被强制睡眠。
5、I/O阻塞(BlockedonI/O):等待I/O操作完成。
6、同步阻塞(BlockedonSynchronization):等待获取锁。
7、死亡(Dead):线程完成了执行。
先把2个文件放在同一个包下面,这样就可以访问另一个java程序了。
一般的方法是在a程序里实例化b类,然后通过b.方法名
去调用b类里的方法
runtime.getruntime().exec("外部程序");
相当于你在cmd控制台中输入"外部程序"并回车执行
2024-01-01 09:58:48
2024-04-13 00:38:12
2024-03-31 15:14:06
2024-03-21 00:22:13
2024-02-10 22:15:59
2023-12-26 22:10:45