自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 一个高效的异步日志

假如让你自己去写一个日志程序,我想最原始且简单的想法因该是,首先将要写入日志文件的内容转化为字符串,然后调用write系统调用将其写入文件。这种实现方法的确就是我们程序最原始的日志方法。这种做法无疑是十分低效的,那么如何让我们的日志能够高效起来呢?本篇博文就是要给大家分享一种高效的日志–异步日志1.异步日志要实现什么?前言中我有告诉打下那种最原始且简单的日志方法很低效,那么它低效在什么地方了呢?

2015-12-27 19:42:12 9300 3

原创 fastcgi协议分析与实例

1.序言最近在用c++实现一个简易web服务器。在实现之前大体理了一下一个web服务器主要咋样实现。当时单纯的认为只需要将浏览器发来的http请求解析,找到对应的文件,然后给浏览器一个响应,把其要获取的文件发给它就完事。可是写了没几天就遇到了瓶颈。因为我们的浏览器并不能解析动态的php文件,那么如果获取的http请求的请求文件为.php文件我们该杂么办呢?2.将.php转换为.html的php-fp

2015-12-19 00:50:01 10461 7

原创 浅析linux服务端socket编程

记得大一第一次接触linux服务端编程时,当时看的1.Socket接口socket接口用来创建一个套接字描述符,函数定义如下int socket(int domain,int type,int protocol);//成功返回文件描述符,失败返回-1参数介绍: .domain指定使用哪个底层协议,PF_INET(ipv4) PF_INET6(ipv6) .type指定协议的服务

2015-12-01 00:46:46 1944 4

原创 C++11简化线程池的实现

我想用C语言写过线程池的朋友因该都知道用C语言写一个线程池有多么的麻烦,代码差不多300行左右,而且不易阅读。记得大二寒假第一次写线程池用的就是C语言,当时先参考了别人用C写的代码,说实话看起来真困难,因为C写出来的结构好乱,代码又多。我最近在实现一个自己的简单C++网络库(欢迎指点https://github.com/Miaoshuai/netlib),需要一个线程池,本来可以直接用之前拿C写的那

2015-12-27 16:50:46 7072 4

原创 当线程函数为C++类成员函数时

很多时候我们在C++多线程开发时,都会或多或少遇到线程函数为C++类中的某个成员函数,此时可能会发生什么呢?你有可能会杂么做呢? 接下来我就为大家总结一下我在这方面走过的一个历程1.问题一记得我在之前在写一个udp传输文件的程序时,我就第一次遇到了线程函数为C++类的成员函数,当时遇到的问题,大概意思如下:#include<iostream>#include <thread>#include

2015-12-26 20:03:10 18518 6

原创 左值与右值

为了支持移动操作,新标准引入了一种新的引用类型–右值引用。所谓右值引用就是必须绑定到右值的引用。我们可以通过&&来获得幼稚引用1.左值和右值的定义左值和右值都是表达式的属性。一般而言,左值表达式表示的是一个对象的身份,而右值表达式表示的是一个对象的值 例如int i=3;在这里i就是一个左值,它代表了自己是个int型变量(一种身份),而3则仅仅是一个值,所以其为右值。一般来说,右值为一个临时的值,

2015-12-25 15:47:23 919

原创 用C++11进行多线程开发

今天用c++写了一些多线程的代码,写之前感觉c线程同步中用到互斥锁,条件变量等使用起来比较麻烦,于是就自己把c中的互斥锁,还有条件变量封装了一遍,封完之后在c++11相关书中查看东西时,偶然发现原来我重复造了轮子,这些c++11早就为我们准备妥当了,哪还要自己去封。。。 接下来就总结一下,刚学来的c++11对多线程开发的知识1.线程(1)线程创建c++11创建线程相当容易,只需将线程类std::t

2015-12-24 15:50:25 992

原创 对TCP协议中某些内容的理解

本片博文中,我主要谈谈我在学习TCP协议之后,回过头来再总结,对之中的某些知识的一个认识1.为什么要三次握手才能建立连接?TCP的三次握手保证了TCP是一个面向连接的传输协议(UDP没有固定的连接),其基本过程如下 如上图所示,要建立一个TCP连接,首先一方(客户端)向服务器发起一个建立连接的带有SYN标志的包,服务器收到后给客户端回一个ack(确认标志的包),用来告诉客户端我收到了你的请求了

2015-12-07 22:51:19 1265

原创 浅谈存储器管理

在将一个可执行代码通过某种装入方式(静态或动态)装入内存,使其变为一个动态的进程的过程中,我们的内核使用和种方法来管理该进程所要使用的内存的呢?接下来我就为大家一一道来1.早期的连续分配方式在60-70年代,那会我们的计算机计数还不发达,所以每创建一个进程,我们都得先在内存中为其分配好一块足够其使用,并前必须是连续的内存,这种方法在我们先在操作系统中当然以不在使用,但它的原始思想我觉得还是值得我们学

2015-12-02 22:44:21 1194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除