创造升华技术的机会,锻炼抽象的能力

  最近经常来看blog,却很少写。一来是因为搬家的事情烦躁了很久,无心打理博客。二来回顾了一下自己的blog,并且和优秀的人士作了一些对比,发现自己写的东西,走来走去,还是走不出那几行代码的圈子。 一叶障目。 

 

最近一直在写一个java线程方面的ppt,期望在40页以内精炼出最合适的内容。TL要求修改再修改,提炼再提炼。ppt要更少的文字,更深层次的信息传递。

 

可是,关于java的线程,有哪些是最需要写的呢?

 

最近三年来我一直觉得线程就是使用wait,notify,知晓volitae,和Excutor, 熟悉各种lock。

 

但是修改了几个版本PPT之后,发现抄API文档真的有些俗套,于是换成了下面这些主题:

 

1.线程与进程。 不要告诉我线程是轻量级进程, 我需要说的是“进程间的通讯方式”(做c++的都清楚,但是做java的估计根本没考虑过),“进程创建和线程创建的效率对比数据”,以及操作系统对资源的分配原理。

 

2.“并发”的范畴也是一个重要的概念。通常我们理解的多线程仅仅是“互斥与锁”,却忽略了另外一个范畴“可见性”。 从现在开始,将并发理解为互斥+可见性, 是不是会对“并发”明白很多呢。

 

3.去回头审视那些隐蔽了n个月乃至n年的bug,举出一到两个实例,将错误总结到理论的层次。然后反推,为什么这么简单的理论,可以在代码里面潜伏n久?

 

当然上面这些东东,自己感觉层次还是不够,还需要继续修改。写出一份合格的PPT或者一篇不错的博客,都是需要无数次推翻自己,无数次的修改, 并且不断的拔高主题。

 

 

但是认识一个事物,恰恰相反,需要自顶而下。

曾经下过好几次决心去学java的NIO,每次看完API文档都是一头雾水,每次无功而返。

 

最近工作中实实在在的到接触到linux上的I/O模型,select和epoll模型,于是也就开始理解“多路复用”的妙处了。

 

从这个角度来讲,一次真正意义上的学习,一定要挖掘一下背景,并且清楚的知道这件事情存在的意义。 界定一次学习的成绩,不是熟练了API,而是能否将内容自下而上的归纳到起点。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值