百度公开课 - linux后台服务开发 - 笔记整理

这篇博客整理了百度公开课关于Linux后台服务开发的内容,包括常用Linux命令、文本处理、项目管理工具、多线程概念及优缺点、线程安全、高性能网络编程以及多机系统和分布式系统的基础知识。提到了gcc、Makefile、valgrind等开发工具,并探讨了线程池模型和不同IO设计模式。
摘要由CSDN通过智能技术生成

昨晚听完百度校园公开课,还得了个保温杯,好开心.

现在把抄到的笔记整理下,东西不会很详细,但足够引出很多知识点

感谢运维部的颜工来湖大讲课!


1 环游linux

一些常用的linux命令: ssh cd pwd ls tab mkdir rm cp mv cat more less 

文本处理:head tail cat sort diff grep sed awk

重定向: | > >>

其它: alias find scp wget ps top vmstat netstat  watch

vim

gcc 版本我特意问了 ,原来他们部门在用3.4.5版本

gcc常见错误:

underfind reference 找不到库 -l库名 -L库目录   

no such file or directory  找不到头文件 -I 头文件路径 (i的大写)

项目管理工具: Makefile 还有开源的Autoconf 百度的Commake

常用开发工具: valgrind strace Ltrace ccov Gtest


2 多线程

多线程:共享内存空间

优点:数据访问方便 缺点:线程问题会影响整体,线程安全问题

多进程:独立内存空间 


线程切换有开销

开几个线程的要点:线程数不要超过CPU个数

线程安全问题:线程调度的先后是由操作系统决定的,和代码复杂度无关

互斥与同步: (1)访问同一个资源,使用互斥锁程序的串行 (2)使用条件变量保持同步

开销: 锁比运算要慢,但比磁盘IO要快

锁的使用原则:

IO密集型程序:不要让高速设备等待低速设备

CPU密集型程序:放大锁的粒度,减少锁的使用


线程池模型:

(1)单队列:无序,池中的线程能够运行任何任务,能够最大化利用CPU

(2)多队列:某些任务只能由特定的线程来运行,这个需要负载均衡


3 高性能网络编程

网络编程中有很多慢的地方

accept() 在等待

recv() 在等待

send() 在发送到网卡时 在空转


(1)多线程同步IO设计模式

效率低 用于原理验证

(2)单线程异步IO设计模式 (单核时代最快)




(3)多线程异步IO模式 多进程异步IO模式 :充分发挥多核优势


4多机系统和分布式系统

有点累, 没抄笔记 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值