首页 > 编程知识 正文

python wait,java主线程sleep

时间:2023-05-03 21:06:24 阅读:162429 作者:2633

在面试线程知识时,这个问题基本上是必须的问题。 因此,有必要在此进行更详细的总结。

区别一体

首先,必须了解这两种方法来自根本不同的类,sleep来自Thread,而wait来自Object类。

sleep是Thread提供的静态方法,该方法出现在该线程中,该线程并不是“睡觉”

调用这个方法的线程睡觉。 例如,在a线程中线程b.sleep ),a线程睡觉。

区别2

最主要的区别在于,sleep方法没有释放“锁定”,而wait方法如果没有释放“锁定”,则会出现死锁。

sleep不释放系统资源; 当wait是线程交互时,如果线程a向同步对象x发出wait

调用线程必须进入线程等待池,其他线程必须调用notify/notifyAll将其唤醒,或者等待指定的时间

自动唤醒。

这里还需要理解的是,无论是sleep设定的时间到了,还是在wait后醒来,线程都是并行的

不是立即重新开始执行,而是触发“操作系统再次与CPU冲突”。

三个区别

使用范围不同(将此作为区别稍微强行了一点) ) )。

wit、notify/notifyAll必须在同步控制块、同步方法中使用。 sleep在任何地方都可以使用。

同步(x ) {

x.notify () )

//或wait () )

}

四个区别

在代码表示中,sleep必须捕获异常,而wait不需要捕获异常。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。