Broglie

导航

2017年1月16日 #

几种常见的排序算法分析

摘要: 选择排序 选择排序是一种非常直观且简单的排序算法。它工作的流程是这样的: 首先找出数组中最小的那个元素,将它和数组的第一个元素交换位置;然后在第二个到最后一个元素中间找到最小的那个元素与数组的第二个元素交换位置。 就这样依次遍历,直到将整个数组排序。 选择排序不是稳定排序,但是是原地排序,时间复杂度 阅读全文

posted @ 2017-01-16 20:41 Broglie 阅读(344) 评论(0) 推荐(0) 编辑

2016年11月10日 #

C++STL内存管理方法(g++版)

摘要: STL作为C++的经典作品,一直备受人们关注。本文主要介绍STL的内存管理策略。 早期的STL内存管理 第一次接触STL源码是看侯捷先生的《STL源码剖析》,此书通俗易懂,剖析透彻,是极佳的STL分析教程。不过由于是在2002年出版的,所以内容有些陈旧,不过仍然具有参考价值。 现代g++的STL是由 阅读全文

posted @ 2016-11-10 21:29 Broglie 阅读(1318) 评论(0) 推荐(1) 编辑

2016年10月4日 #

如何写一个简单的HTTP服务器(重做版)

摘要: 最近几天用C++重新写了之前的HTTP服务器,对以前的代码进行改进。新的HTTP服务器采用Reactor模式,有多个线程并且每个线程有一个EventLoop,主程序将任务分发到每个线程,其中采用的是轮盘调度来均匀分配任务。 服务器的源代码放在 "Github" 。以前的旧版本也放在我的GitHub上 阅读全文

posted @ 2016-10-04 21:51 Broglie 阅读(15960) 评论(1) 推荐(1) 编辑

2016年8月26日 #

如何写一个简单的shell

摘要: 如何写一个简单的shell 看完《UNIX环境高级编程》后我就一直想写一个简单的shell来作为练习,因为有事断断续续的写了好几个月,如今写了差不多来总结一下。 源代码放在了Github: https://github.com/yibo141/Oh Shell 简单的分析 我们的shell不像bas 阅读全文

posted @ 2016-08-26 10:05 Broglie 阅读(4346) 评论(0) 推荐(0) 编辑

Linux守护进程

摘要: 什么是守护进程? 守护进程是生存期长的一种进程,它们常常在系统引导装入时启动,仅在系统关闭时在终止。它们没有控制终端并且在后台运行。Linux 系统中有很多守护进程用以执行系统的日常事物,而且服务器程序一般都作为守护进程运行。大多数守护进程都以超级用户特权运行,而 且用户层守护进程的父进程是init 阅读全文

posted @ 2016-08-26 09:22 Broglie 阅读(753) 评论(0) 推荐(0) 编辑

2016年7月5日 #

字节序:大端法和小端法

摘要: 什么是大端法和小端法? 在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中的最小地址。 例如,假设一个类型为int的变量x的地址为0x100,即&x的值为0x100。那么x的4个字节将被存储在 存储器的0x100,0x101,0x102和0x103的位置。 字节序即为多 阅读全文

posted @ 2016-07-05 22:11 Broglie 阅读(26559) 评论(0) 推荐(2) 编辑

2016年6月2日 #

学习计算机需要看哪些经典书?

摘要: 计算机的学习也就那几门基础课,语言(如C,C++,Java等),数据结构与算法,数据库,计算机网络,计算机组成,操作系统,编译原理等。 下面列出书单共大家参考,这些书都是各个方面的经典书籍,非常值得一读。这些书也是我看过的书或者正在准备看的。 1.语言方面 C语言推荐著名的K&R "C程序设计语言" 阅读全文

posted @ 2016-06-02 20:49 Broglie 阅读(22711) 评论(0) 推荐(0) 编辑

2016年5月28日 #

IA32寄存器与x86-64寄存器的区别

摘要: IA32寄存器 一个IA32CPU包含一组8个存储32位值的通用寄存器,这些寄存器用来存储整数数据和指针: |31 0 |15 0 |15 8 |7 0 |使用惯例 | | | | | | | | %eax | %ax | %ah | %al| 调用者保存 | | %ecx | %cx | %ch 阅读全文

posted @ 2016-05-28 19:23 Broglie 阅读(1696) 评论(0) 推荐(1) 编辑

2016年5月24日 #

C++中extern关键字用法小结

摘要: 总结C++中关于extern关键字的用法。 1.变量的生明和定义中 C++语言支持分离式编译机制,该机制允许将程序分割为若干个文件,每个文件可被独立编译。为了将程序分为许多文件,则需要在文件中共享代码,例如一个文件的代码可能需要另一个文件中中定义的变量。 为了支持分离式编译,C++允许将声明和定义分 阅读全文

posted @ 2016-05-24 21:36 Broglie 阅读(75483) 评论(0) 推荐(6) 编辑

2016年5月5日 #

操作系统中陷阱,中断和异常的区别

摘要: 在操作系统中,陷阱,中断和异常是常见的术语,它们贯穿操作系统学习的始终,这篇文章主要区分它们之间的不同。 阅读全文

posted @ 2016-05-05 21:03 Broglie 阅读(10090) 评论(0) 推荐(2) 编辑