zoukankan      html  css  js  c++  java
  • 《Linux多线程服务端编程——使用muduo C++网络库》读书笔记

    第一章 线程安全的对象生命期管理

    第二章 线程同步精要

    第三章 多线程服务器的适用场合与常用编程模型

    第四章 C++多线程系统编程精要

    1.(P84)11个常用的最基本Pthreads函数:

    2个:线程的创建和等待结束(join)。封装为muduo::Thread
    4个:mutex的创建、销毁、加锁、解锁。封装为muduo::MutexLock
    5个:条件变量的创建、销毁、等待、通知、广播。muduo::Condition

    2.(P85)不推荐使用读写锁的原因是它往往造成提高性能的错觉(允许多个线程并发读),实际上在很多情况下,与使用最简单的mutex相比,它实际上降低了性能。

    3.(P85)从理论上讲,如果没有合适的内存模型,编写正确的多线程程序属于撞大运行为,见Hans-J.Boehm的论文《Threads Cannot be Implemented as a Library》:

    http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf

    4.(P86)我们不必担心系统调用的线程安全性,因为系统调用对于用户态程序来说是原子的。但是要注意系统调用对于内核状态的改变可能影响其他线程。

    5.(P86)POSIX标准列出了一份线程安全的黑名单,在这份黑名单中,system、getenv/putenv/setenv等函数都是不安全的。

    http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09

     

  • 相关阅读:
    web页面接入QQ客服的方法
    如何使用webapi集成swagger
    TCP的三次握手和四次挥手
    笔记-ASP.NET WebApi
    .net开发人员应该知道的几个网站
    HttpClient在async中产生的代码不执行和堵塞
    【转】CA证书申请+IIS配置HTTPS+默认访问https路径
    WebApi捕捉异常的一套方案
    使用Topshelf部署你的Job
    使用ajax局部更新Razor页面
  • 原文地址:https://www.cnblogs.com/big-xuyue/p/3761792.html
Copyright © 2011-2022 走看看