【笔记】代码整洁之道

        有太多时候,我们一旦写出能工作的代码,就转移到下一个问题上,而没有下足功夫调整代码,让后来者易于阅读。记住,下一位读代码的人最有可能是你自己。
        所以,多少尊重一下你的手艺吧。花一点点实践在每个函数和类上。选用较好的名称,将大函数切分为小函数,时时照拂自己创建的东西。用心是最珍贵的资源。

线程安全群集

        对于Java,需要掌握java.until.concurrent 、java.util.concurrent.atomic和java.util.concurrent.locks

互斥

        每一时刻仅有一个线程能访问共享资源。

线程饥饿:

        一个或一组线程在很长时间内或永久被禁止。例如,总是让执行得快的线程先运行,假如执行快得线程没完没了,则执行时间长的线程就会"挨饿"。

死锁:

        两个或多个线程相互等待执行结束。每个线程都拥有其它线程需要的资源,如果得不到其它线程拥有的资源,就无法终止。

并发问题的三种模型

  • 生产者-消费者模型
  • 读者-作者模型
  • 哲学家就餐

        你可能遇到的并发问题,大多数都是以上3重模型的变种。

临界区

        指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问的设备,例如:打印机。
        临界区是为了确保程序正确而要阻止同时使用的代码区域

        要编写整洁代码,必须先写肮脏代码,然后再清理它。
        你应该不会对此感到惊讶。我们在小学就学过这条真理了。那时,老师(通常是徒劳地)努力让我们写作文草稿。他们告诉我们,我们应该先写草稿,再写二稿,一次又一次地草撰,直至写出终稿。他们尽力告诉我们,写出好作文是一个逐步改进的过程。
        多数新手程序员(就像多数小学生一样)没有特别认真地遵循这个建议。他们相信,首要任务是能写出工作的程序。只要程序"能工作",就转移到下一个任务上,而那个"能工作"的程序就留在了最后那个所谓"能工作"的状态。多数有经验的程序员都知道,这是一种自毁行为。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值