博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object的方法
阅读量:6559 次
发布时间:2019-06-24

本文共 658 字,大约阅读时间需要 2 分钟。

hot3.png

1.toString()

2.equal()

3.getClass()

4.clone()

5.hasCode()

6.wait()

7.notify()

8.notifyall()

9finalize()

 

notify()和notifyall()的区别:

notifyAll会使所有等待被唤醒的线程退出等待状态,变为等待该对象上的锁,当锁打开的时候,他们就会去竞争。

notify则只会选择一个等待的线程进行通知,并且使得它获取该对象上的锁,不会惊动其他等待的线程。

当第一个线程运行完毕以后释放对象上的锁此时如果该对象没有再次使用notify语句,则即便该对象已经空闲,其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。

wait()和sleep()的区别

wait()属于Object类上面的方法;wait()属于Thread类上的方法

sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。

在调用sleep()方法的过程中,线程不会释放对象锁。

wait()会使得线程放弃该对象的锁,只有调用notify()方法唤醒该线程,并且把锁给他,他才会继续运行,否则一直挂着等待唤醒,重新拿到锁。

转载于:https://my.oschina.net/u/2870118/blog/1933455

你可能感兴趣的文章
python处理xml实例
查看>>
从《一生所爱》到《世间始终你好》
查看>>
UIStackView相关
查看>>
数据库
查看>>
20145240问卷调查
查看>>
[linux] uptime 命令中关于平均负载的解释
查看>>
Algs4-1.4.25扔两个鸡蛋
查看>>
Algs4-2.4.22调优先队列的整数组大小
查看>>
设计模式之建造者
查看>>
模块化的JavaScript开发的优势在哪里
查看>>
上海某软件公司电话面试分享
查看>>
TCP 和 UDP 协议发送数据包的大小 (转载)
查看>>
用Alamofire进行网络请求的一段代码解析(一)
查看>>
elasticsearch的percolator操作
查看>>
windows 定时任务:schtasks,定时关闭网易云音乐
查看>>
C# Note17: 使用Ionic.Zip.dll实现解压缩文件
查看>>
Mina Basics 06-传输
查看>>
c 编译异常 switch 之a label can only be part of a statement and a declaration is not a statement...
查看>>
nullnullDataTable 排序
查看>>
Codeforces Ilya and Queries
查看>>