当前位置: 首页 > 面试题库 >

请简述一下线程的sleep()方法和yield()方法有什么区别?

梁华皓
2023-03-14
本文向大家介绍请简述一下线程的sleep()方法和yield()方法有什么区别?相关面试题,主要包含被问及请简述一下线程的sleep()方法和yield()方法有什么区别?时的应答技巧和注意事项,需要的朋友参考一下

考察点:线程

有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法,反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被”挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

 类似资料:
  • 问题内容: 由于当前正在执行的线程在遇到调用时会立即将其移入休眠状态。而线程进入 可运行 状态/ 就绪 状态。 问题答案: 使线程在给定的时间内肯定停止执行;如果没有其他线程或进程需要运行,则CPU将处于空闲状态(并可能进入节能模式)。 基本上意味着线程没有做任何特别重要的事情,如果需要运行任何其他线程或进程,则应该这样做。否则,当前线程将继续运行。

  • 问题内容: 我知道一个区别: 如果我们说,该线程肯定会休眠数毫秒,而没有这样的保证。这对于线程调度很有用,因为调用的线程可以立即重新选择好运行。 还有什么? 问题答案: 只是说:现在是让另一个线程运行的好时机,这对调度程序来说是一个提示。确实做到了:至少在给定的时间睡觉。

  • 本文向大家介绍请简述一下实现多线程同步的方法?相关面试题,主要包含被问及请简述一下实现多线程同步的方法?时的应答技巧和注意事项,需要的朋友参考一下 考察点:多线程 可以使用synchronized、lock、volatile和ThreadLocal来实现同步。 考察点:多线程 可以使用加锁,比如synchronized或者lock。也可以使用Concurrent包下的原子类。

  • 本文向大家介绍请说明一下sleep() 和 wait() 有什么区别?相关面试题,主要包含被问及请说明一下sleep() 和 wait() 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程 sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的

  • 本文向大家介绍请简述一下Mybatis和Hibernate的区别是什么?相关面试题,主要包含被问及请简述一下Mybatis和Hibernate的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:Spring框架 参考回答: 简介 Hibernate:Hibernate是当前最流行的ORM框架之一,对JDBC提供了较为完整的封装。Hibernate的O/R Mapping实现了POJO

  • 本文向大家介绍详解Java中的线程让步yield()与线程休眠sleep()方法,包括了详解Java中的线程让步yield()与线程休眠sleep()方法的使用技巧和注意事项,需要的朋友参考一下 线程让步: yield() yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它