人月神话

焦油坑

编程有它的乐趣,来自于创造事物、创造有用的劳动成果、精妙组织产生的魔术般力量、学习和挑战和自我驾驭等等。然而这份职业也有自己的问题,如必须追求完美,由他人设定目标和供给资源和信息,不可避免的重复劳动,以及更新换代快等等。

而软件工程(尤其是开发大型系统)就像焦油坑,只有非常少数项目能满足目标、时间进度和预算的要求。表面上看,没有一个单独的问题导致了困难,但当它们相互纠缠和积累在一起的时候,麻烦就来了。

阅读更多

Java并发编程之AQS

什么是 AQS

同步工具类 也叫同步器(Synchronizer)。在使用同步器时,我们发现不同的同步器存在许多共同点,例如 ReentrantLock 和 Semaphore 都支持每次允许一定数量线程通过/等待/取消,也都支持让等待线程执行公平或非公平的队列操作等。

事实上,很多同步工具类在实现时都使用了共同的基类,这就是 AbstractQueuedSynchronizer(AQS),抽象队列同步器

阅读更多

Java并发编程之对象共享

对象数据共享

要实现多个线程之间的数据共享,需要考虑两个问题:

  • 通信:通信是指消息在两条线程之间传递
  • 同步:既然要传递消息,那 接收线程发送线程 之间必须要有个先后关系。此时就需要用到同步,即控制多条线程之间的执行次序。
阅读更多

快递

晚上9点,接到京东小哥的电话,说我快递到了,在出入口体温检测点等我,我说放那吧,我稍后就出去取,小哥说我快件比较多,他不太放心,还是在这等我出来吧。听他这么说,我便即刻起身出门,一路快走,3分钟就从家里赶到了出入口。

阅读更多

改变

一场疫情不知不觉间改变了很多原本我以为一成不变的事情。

春节在家过了个超长假期,又远程办公了两个星期。我原本以为我永远不会期待热闹和人群,但是有一天在家突然一束光影掠过眼角,竟也有几个瞬间想念平日里稀松平实却又吵闹无比的生活。那些往日里平凡得再不能平凡东西,在这一刻变得有意义。

阅读更多

我的2019

圣诞节前一晚,阿琳问我重温《真爱至上》了没有,我说资源都找好了,就是没有兴致看,于是临时决定看《小森林》,可是《小森林》也没看完,就把平安夜的时间花费在其他虚无的事情上去了。2018年我看了不少电影,在 去年的总结 里列出来过,但对于我的2019,一瞬间却是完全的空白。直至打开D盘电影清单目录,试图寻找这一年的蛛丝马迹的时候,才赫然看到下载未看电影已经积累到十几二十部。

阅读更多

Effective Java(九)异常

Item 69 异常只用于异常

异常只用于异常的情况,不要用 try-catch 捕获 ArrayIndexOutOfBoundsException 并且不做任何处理这种方式来跳出数组遍历。为什么不用 for-each 循环呢?

设计良好的 API 不应该强迫它的客户端为了正常的控制流程而使用异常。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×