首页 > 编程知识 正文

arraylist和linkedlist的区别,run和start的区别

时间:2023-05-05 08:39:52 阅读:146078 作者:137

sleep ) )是使线程的执行中断一定时间的方法。 wit ()也是一种暂停线程执行的方法。 例如,线程运行wait ()方法时,当前锁定将解除,CPU将释放并进入等待状态。 也可以调用notify (方法或notifyAll ) )方法通知其他等待的线程。 notify ) )方法只唤醒队列中等待第一个线程的一个线程,以便可以获取锁定。 notifyAll ) )方法会唤醒等待此对象的所有线程,并允许它们进行冲突以获得锁定。 具体区别如下。

1 )原理不同。 sleep ) )方法是Thread类的静态方法,线程使用该方法来控制自己的进程。 他让这个线程中断一段时间的执行,给其他线程执行机会,过了一段时间就会自动醒来。 例如,如果线程正在执行报时功能,并且每秒打印一次时间,则必须在打印方法之前添加sleep ) )方法,以便可以像闹钟一样每秒执行一次。 wait ) )方法是用于线程间通信的object类的方法,当前具有对象锁的进程调用其他线程为notify ) )方法或notifyAll ) ) )

2 )对锁的处理机制不同。 sleep ) )方法的主要作用是使线程暂停执行一段时间,并在到达时间时自动恢复,与线程之间的通信无关,因此sleep ) )方法的调用不会释放锁定。 与wait ) )方法不同,wait ) )方法调用时,线程将释放其占用的锁定,使线程所在对象中的其他同步数据可供其他线程使用。

3 )使用区域不同。 wit ) )方法必须与同步控制方法和同步代码块一起使用,sleep ) )方法可以位于任何位置。 sleep (方法需要捕获异常,而wait )、notify )和notifyAll ()不需要捕获异常。 在sleep过程中,其他对象可能会调用他的interrupt (),从而生成InterruptedException。 由于sleep不会释放锁定标志,因此容易出现死锁问题,因此通常建议使用wait ()方法。

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