获得徽章 27
- JVM 会给每个对象维护一个入口集(Entry Set)和等待集(Wait Set)。
入口集用于存储申请该对象内部锁的线程,等待集用于存储对象上的等待线程。
wait() 方法会将当前线程暂停,在释放内部锁时,会将当前线程存入该方法所属的对象等待集中。
调用对象的 notify() 方法,会让该对象的等待集中的任意一个线程唤醒,被唤醒的线程会继续留在对象的等待集中,直到该线程再次持有对应的内部锁时,wait() 方法就会把当前线程从对象的等待集中移除。
添加当前线程到等待集、暂停当前线程、释放锁以及把唤醒后的线程从对象的等待集中移除,都是在 wait() 方法中实现的。
在 wait() 方法的 native 代码中,会判断线程是否持有当前对象的内部锁,如果没有的话,就会报非法监视器状态异常,这也就是为什么要在同步代码块中执行 wait() 方法。展开赞过评论2 - 在大学我们都只教 C++/Java 这些流行的编程语言或者工程语言(可以轻松找到工作), 导致我们认为只要是编程, 就只有C++这一种解决方案, 所有的东西都是对象和设计模式。 而构建Emacs的Elisp(Lisp的一种变种)大大拓宽我对编程语言和构建程序的方法, 传统的程序几乎等同于 “数据格式” + “程序算法”, 在Elisp里面没有明确的数据和算法的界限, 所有的组件都是 List 这个最基本的元素来构建, 数据即算法, 算法即数据的编程理念以及Lisp独有的豪放的编程风格让我的编程世界观彻底颠覆了, 除了观念以外, 你可以在 EmacsWiki 上自由的查看全世界顶尖黑客为 Emacs 编写的插件源码和进化工作, 你可以从他们每天更新的插件代码中体会他们独特的编程世界观和高超的编程技巧…展开赞过31
- #重启人生,由你决定# 今天分享的书是《一个白手起家的商人给他儿子的信》
书摘:
● 教育很像吃饭——一个人不能总是分辨出哪一件事对他有益,但他通常可以分辨出哪一件事对他有害。
● 大学不犯傻;它开发了它们。它不会造就聪明人;它开发了它们。傻瓜终究会变成傻瓜,无论他是否上大学,尽管他可能会变成另一种傻瓜。
● 与其说知道很多,不如知道一点点以及如何使用它才重要。
● 您越早根据自己的收入能力调整支出,他们就越容易相处。
● 我不能把任何现成的成功交给你。这对你没有好处,而且会对房子造成伤害。这里的顶部空间很大,但大楼内没有电梯。
● 仅仅因为其他人做任何事情而做任何事情的男孩很可能会一辈子挠一个穷人的背。
● 有些人从书本中学到他们所知道的一切;生活中的别人;两种都很窄。第一个都是理论;第二个都是练习。
● 看起来聪明比谈论智慧更容易。说的比对方少,听的比说的多;因为当一个人在倾听时,他并不是在自欺欺人,而是在奉承别人。
● 没有比允许一个人变得愚蠢更容易治愈愚蠢的方法了。要让一个人知道他选错了生意,唯一的办法就是让他试一试。展开赞过评论2 - #重启人生,由你决定#
今天分享的主题是《历史》的下半段书摘
● 理性不可能成为任何时代的主导方面,因为它只是一种工具。理性和理性是思考的工具,但还有许多其他有用的方法涉及像情感一样的理性。
● 没有人能指望与整个人类的洞察力相提并论。认为您的想法能够与这些经过验证的概念作斗争是愚蠢的。
● 你永远不应该相信一个老人是年轻人的判断力,因为他们会在年轻人做之前就切断他们要做的大胆的事情。
● 唯一真正的革命在于思想的启蒙和品格的提升。唯一真正的解放是个人。唯一真正的革命者是哲学家和圣人。
● 什么时候自由变得过度了?它在什么时候变得无序?
● 自我克制使文明成为可能。很明显,某种边界使自由成为可能。如果我们越过这些界限,我们就会陷入混乱,而不是文明。
● 我们不断扩大我们的工具,却没有扩大我们的目的。我们已经开发出更复杂的方法来满足人类的基本需求。
● 很难体会到自己年龄的品质。我们通常更了解前一个时代的成就而不是他们的错误。与此同时,我们通常更了解自己的错误,而淡化自己的成就。这使得年龄之间的比较变得困难。
● 进步是我们用于实现相同旧目标的手段的改进。我们的进步可能只是手段而不是目的。我们是否只是通过新的现代手段实现了 10,000 年前的相同愿望?
● 思想是历史上最强大的东西。甚至枪支最初也是一个想法。
文章链接:jamesclear.com
展开赞过评论2
![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)
![[鼓掌]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_64.6c4f6bb.png)