![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
缱绻的西格玛
西格玛不离散
展开
-
C++11的mutex和lock_guard,muduo的MutexLock 与MutexLockGuard
互斥锁是用来保护一段临界区的,它可以保证某段时间内只有一个线程在执行一段代码或者访问某个资源。 C++11的mutex和lock_guard C++11新增了mutex,使用方法和linux底下的常用使用方法差不多。先使用std::mutex 定义一个互斥锁,例如std::mutex XXXmutex在需要使用互斥锁的时候,使用XXXmutex.lock();上锁,以及使用XXXmutex.un原创 2015-09-11 15:58:32 · 2728 阅读 · 0 评论 -
对象析构不析构?
C++中的默认构造函数还有析构函数都是默认在“适当的时机”被调用的,这在一般的编程中似乎是比较明了的。《C++ Primer》作者Stanley B.Lippman说”C++保证,一定会在main()函数中第一次使用全局对象之前,把它构造出来,而在main()函数结束之前,把它摧毁掉!”,那么自然的,在对象被构造的时候,调用构造函数,main函数结束之前调用析构函数将对象销毁,下面这个简单的例子也是原创 2015-09-11 16:26:41 · 1737 阅读 · 0 评论 -
单例模式及单例类的两种实现
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。单例模式同时也是所有设计模式中最简单的一种。 那么问题来了,单例类有什么作用呢?对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可原创 2015-09-11 20:28:14 · 2393 阅读 · 0 评论 -
linux上github的简单使用
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。今天我也想加入到github的大军中 了。原创 2015-10-06 13:13:13 · 1891 阅读 · 0 评论 -
当析构函数遇上多进程
(本文的多进程特指linux下的多进程,其他系统的没做过试验) 编写多进程或者多线程的程序总会有那些么一些些坑,一般来说是这样的,进程之间的地址空间是独享的,而线程是共享进程的地址空间,线程的资源比进程小,创建线程比创建进程快,线程间切换快,线程间通信快,线程资源利用率好。这样一说貌似好处全被多线程占尽,那么多进程岂不是没用,其实不然,多线程和多进程各有其用处,正如不要在脱离实际条件讨论selec原创 2015-10-16 20:18:55 · 2218 阅读 · 0 评论 -
使用C++STL的map容器实现一种命令映射
因为最近在练习写一个ftp的服务器,其中的命令有很多种,每个命令对应一个执行函数,能够想到的最简单的实现方式便是使用if……else匹配命令和执行对应的函数,如下所示:if(strcmp("one",cmd) == 0){ ……}else if(……){ ……}为了避免频繁地使用if……else……,一种方法是可以建立一个命令和函数指针的数组。大致可以如下实现://函数指针原创 2015-10-09 21:39:45 · 1811 阅读 · 0 评论 -
Effective C++学习记录
Effective C++算是看完了,但是并没有完全理解,也做不到记住所有,在此记录下55个条款及条款末的“请记住”。让自己习惯C++条款01:视C++为一个语言联邦① C ② Object-Oriented C++ ③ Template C++ ④ STL条款02:尽量以const,enum,inline替换#define① 对于单纯常量,最好以const原创 2016-02-21 20:12:30 · 793 阅读 · 0 评论