用c语言 java 来获取当前(进程)线程状态

用c语言 java 来获取当前(进程)线程状态,第1张

通过调用Thread.getState()方法获宴稿取当前线程状态。以下是我的代码,可以直接编译运行。

public class Test {

public static void main(String[] args) {

new NewThread().start() /渣枝/启动线程

}

}

class NewThread extends Thread{

public NewThread() {

super("NewThread") //定义当前线程的名称为NewThread

}

@Override

public void run() {

System.out.println("当前线程:"+currentThread().getName()+"运行状态为:"+getState())//打印线程晌梁孝的运行状态

}

}

道线程还有这么多状态的,线程主要状态不是只有:创建-》就绪-》运行->阻塞-》终止 吗?

我是用java的,介绍下java的Thread的方法

1. sleep()方法:sleep()允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。这可以理解为休眠吗?或者是阻塞?

2.yield() 方法:yield() 使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得 CPU 时间。调用 yield() 的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。

3.wait() 和 notify() 方法:两个方法配套使用,wait() 使得线程进入阻塞状态,它有两种形式,一种允许指定以毫秒为单位的一段时间作为参数,另一种没有参数,前者当对应的 notify() 被调用或者超出指定时间时线程重新进入庆搏可执行状态,后者则必须对应的 notify() 被调用。

而我自己经常用的是在run()方法里面用标识符,根据条件改变标识符的值来控制循环的运行,或者是监听某个裂差饥输入条件,监听不到就一直等待在那里。

挂起我倒是在进程上听过,

就绪挂起: 进程在内存外,但只要被调入内存就可运行

等待挂起: 进程在外存中,并且等待某件事情发生

不知道这和线程是不是一样。

而阻塞,中断和休眠在java里面好像都是用sleep()来完成的,在我理解起来其实是一种状态, 但因为我的水平问题,对内存什么的没什么研究,所以我很期待有人能解答。

期肆返待大神

期待大神!

期待大神!

期待大神!

期待大神!

期待大神!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12387940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存