睡觉和等待

Anonim

睡眠与等待

诸如计算机之类的机器使用人工语言来创建程序,控制它们,并允许它们传达指令和表达算法。这种语言称为编程语言。

在计算机出现之前,编程语言已经被用于织机和钢琴。随着计算机的使用变得越来越普遍,现在使用了几种编程语言。

有几种计算机语言,包括高级语言,如:BASIC,C,C ++,Fortran,Pascal和Java。每个虚拟机和CPU都有自己的计算机语言,每个都有自己的弱点和优势,每个虚拟机在启动时都会运行一个线程。该线程在程序中执行应用程序代码。它可以使程序运行得更快,并有助于其性能和实用性,尤其是在使用多个线程时。

虚拟机(例如Java虚拟机)支持多线程概念,其中优先级较高的线程首先在较低优先级线程上执行,从而确保公平的时间处理分工。

它使用线程管理方法,可以创建,控制和终止共享空间中的控件或线程流。其中两种线程管理方法是wait和sleep方法。

这两种方法是分开的。 sleep方法控制线程的执行并延迟下一个操作,而wait方法不控制线程的执行以让其他线程运行。

wait方法在Object类中定义,并将当前线程发送到not runnable状态。它与notify和notifyAll方法一起使用,让对象的执行代码暂时暂停并在以后恢复。

它的工作原理是调用一个锁对象并让当前线程与它同步。 Wait将释放锁并将线程放入等待列表中,让其他线程与其同步,从而唤醒原始线程。程序员确定再次开始执行的具体时间。

另一方面,睡眠方法被定义为静态方法。它会延迟线程而不是对象的执行,也会暂停正在执行的线程。它将当前线程发送到不可运行状态一段时间。它可以影响多线程应用程序的行为,因为它保留了当前线程的同步锁。一旦线程处于同步块中,则没有其他线程可以进入该块。

摘要:

1.“Sleep”是一种线程管理方法,定义为静态方法,而“wait”是在Object类中定义的线程管理方法。 2.Sleep是一个执行线程的方法,而wait是一个执行对象的方法。 3.Sleep保持当前线程的同步锁,并在等待时不影响应用程序的行为。 4.Sleep控制线程的执行,并且不允许同步块中的其他线程,而wait不控制线程的执行以允许其他线程运行。