47、sleep()和 wait()有什么区别?

(网上的答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。)



多线程有几种实现方法?同步有几种实现方法?


多线程有两种实现方法,分别是继承Thread类与实现Runnable接口



同步的实现方面有两种,分别是synchronized,wait与notify



wait():使一个线程处于等待状态,并且释放所持有的对象的lock。



sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。



notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对...
    东经315度阅读 1,980评论 0 8
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 2,986评论 1 18
  • 老张说,他喜欢了六年的女孩子要结婚了。 和他在茶馆见面的时候,他一脸憔悴。 放弃一个特别喜欢的人,很难受吧! 老张...
    午夜彩虹阅读 538评论 0 1
  • 妈妈生日这天,我和爱人按约定,一起采购好食材回家做火锅,一家人一起聚餐也为妈妈生日小庆一下(爸妈不过生日)。哥哥和...
    桐生影阅读 564评论 0 2
  • 这是一间普通的会议室,和上海其它企业的并没有什么不同。严瑜坐在一头,和团队的伙伴们商讨着[俱乐部云管家]新版本的方...
    巧克力便利店阅读 468评论 0 1