诸如计算机之类的机器使用人工语言来创建程序,对其进行控制并允许它们传达指令和表达算法。这种语言称为编程语言。
在计算机出现之前,编程语言已经在织机和钢琴中使用。随着计算机的使用变得越来越普遍,现在使用了几种编程语言。
有几种计算机语言,包括高级语言,例如:BASIC,C,C++,Fortran,Pascal和Java。每个虚拟机和CPU都有自己的计算机语言,每个语言都有其自身的弱点和优点,并且每个虚拟机在启动时都会运行一个线程。该线程执行程序中的应用程序代码。它可以使程序运行更快,并有助于其性能和实用性,尤其是在使用多个线程的情况下。
虚拟机(例如Java虚拟机)支持多线程概念,优先级高的线程优先于优先级低的线程执行,以确保公平地划分时间。
它使用线程管理方法来创建,控制和终止共享空间中的控件或线程流。这些线程管理方法中的两种是wait和sleep方法。
这两种方法是分开的。 sleep方法控制线程的执行并延迟下一个操作,而wait方法不控制线程的执行以让其他线程运行。
在Object类中定义了wait方法,并将当前线程发送到不可运行状态。它与notify和notifyAll方法一起使用,以使对象的执行代码暂时暂停并在以后恢复它。
它通过调用锁对象并让当前线程与其同步来工作。 Wait将释放该锁,并将线程放入等待列表,并让其他线程与其同步,从而唤醒原始线程。程序员确定再次开始执行的具体时间。
另一方面,将睡眠方法定义为静态方法。它延迟了线程而不是对象的执行,并且挂起了正在执行的线程。它会将当前线程发送到不可运行状态一段时间。因为它保留了当前线程的同步锁,所以它可能会影响多线程应用程序的行为。线程进入同步块后,其他线程将无法进入该块。
总结
- Sleep是一种线程管理方法,被定义为静态方法,而“wait”是一种线程管理方法,其在Object类中定义。
- Sleep是一种执行线程的方法,而wait是一种执行对象的方法。
- Sleep保留当前线程的同步锁,并在不等待时影响应用程序的行为。
- Sleep控制线程的执行,并且不允许同步块中的其他线程,而wait不控制线程的执行以让其他线程运行。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Sleep和Wait
本文链接:https://www.vsdiffer.com/vs/sleep-vs-wait.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。