每日一句:读比听快,做比看快, |
🍺感谢观看 |
最近在看《Linux 多线程服务端编程》,看到下面这几句话,感觉值得牢记,于是摘抄下来了~
- 首要原则是尽量最低限度地共享对象,减少需要同步的场合。一个对象能不暴露给别的线程就不要暴露;如果要暴露,优先考虑不可变对象;实在不行才暴露可修改的对象,并用同步措施来充分保护它。
- 其次是使用高级的并发编程构件,如 TaskQueue 任务队列,Producer-Consumer Queue 消费者生产者、CountDownLatch 倒计数器等等。
- 最后不得已必须使用底层同步原语(primitives)时,只用非递归的互斥器和条件变量,慎用读写锁,不要用信号量。
- 除了使用 atomic 整数之外,不自己编写 lock-free 代码,也不要使用“内核级”同步原语。不凭空猜测哪种做法性能更好,如 spin lock 和 mutex。