java - wait 在对象上调用,而 sleep 在线程上调用

标签 java multithreading

我试图理解 java wait() 和 sleep() 方法之间的以下区别。我了解每个人的基本功能,但经常与以下陈述混淆。

wait is called on Object while sleep is called on Thread.

相对于下面的代码,上面语句中的对象是什么,因为即使线程对象 t 也是像 java 中的任何其他对象一样创建的。

public class MyRunnableThreadClass implements Runnable{

public void run(){
try{
 Thread.sleep
}
catch(Exception e){}

}

public class ThreadDemo {

Thread t = new Thread ( new MyRunnableThreadClass()); 

}

请帮忙,在这种情况下,哪个是对象,哪个是线程

最佳答案

wait is called on Object while sleep is called on Thread.

这个说法甚至不正确。

  • wait()Object的非静态方法,因此必须使用特定实例调用。

  • sleep()Thread的一个静态方法,所以它不需要具体的实例,但它所做的就是把当前的线程 hibernate 。它是通过静态调用 Thread.sleep() 来调用的。与任何特定对象完全无关。

关于java - wait 在对象上调用,而 sleep 在线程上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21976953/

相关文章:

c - Windows 的 rand_s 线程安全吗?

android - 在 Android 的单独线程中访问数据库

java - Hibernate::意外的 token :FOR

Java 图形绘图未显示在绘图面板上

c# - 使用 TaskScheduler.FromCurrentSynchronizationContext 更新任务中的 UI

java - ConcurrentSkipListMap put 方法是线程安全的吗?

Java ForkJoinPool 线程未完成

java - 直接从 YouTube 下载 FLV 时出现 403 Forbidden

java - java中的对象排序

java - apache FileUpload 和 HttpClient header 编码