自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入浅出MFC

最近一两年都在搞Java,C++逐渐生疏了。现在换工作又重新搞起了C++。其实学了多种语言后,就会发现语言真的没那么重要。基础的东西,如算法、数据结构、文件操作、进程、线程、同步机制,都是超出语言而存在的。即便具体到实现代码,也是相差无几。最近忧心忡忡,工作多年,接触太多技术,可都没有深入和系统。一定要横刀立马,誓要作出成绩。MFC早已是弃子,但《深入浅出MFC》仍旧是如此经典,以至于超出MF...

2019-09-28 17:52:49 10164

原创 Python爬虫开发环境搭建

参考Python3网络爬虫开发实战第一章pipsudo apt install python3-pip从/etc/apt/source.list中指定位置下载pip到/var/cache/apt/archives安装(安装后删除安装包)virtualenv不知道为何在Ubuntu上执行下面的安装后无法正常运行pip3 install virtualenv后改为sudo apt ...

2019-02-13 01:15:42 416

原创 码出高效 Java开发手册一

第 1 章计算机基础1.1 走进O与1的世界正数的补码与原码、反码是一样的 ,而负数的补码是反码加 l 的结果。这样使减法运算可以使用加法器实现, 符号位也参与运算。减少中间变量存储的开销,降低了CPU内部的设计复杂度,使内部结构更加精简,计算更加高效 ,无论对于指令、寄存器,还是运算器都会减轻很大的负担。在左移<<与右移>>两种 运

2019-02-08 23:58:42 317

原创 深入理解并行编程一

这里写自定义目录标题并行编程并行编程的目标是什么使并行编程变得复杂工作分割并行访问控制资源分割和复制与硬件交互硬件的习性概述CPU 流水线内存引用原子操作内存屏障Cache MissI/O 操作开销硬件体系结构操作的开销工具脚本语言POSIX 多进程POSIX进程创建和销毁POSIX线程创建和销毁POSIX 锁POSIX 读写锁原子操作计数统计计数器近似上限计数器精确上限计数器原子上限计数器Sig...

2018-12-10 00:51:17 1672

原创 Effective C++ 读书笔记三

实现Item26:尽可能延后变量定义式出现的时间Item27:尽量少做转型动作Item28:避免返回handles指向对象内部成分Item29:为“异常安全”而努力是值得的Item30:透彻了解inline函数的里里外外Item31:将文件的编译依存关系降到最低继承与面对对象设计Item32:确定你的public继承塑模出is-a模型Item33:避免遮掩继承而来的名称...

2018-04-07 03:05:05 197

原创 Effective C++ 读书笔记二

Constructors, Destructors, operator=Item5:四大默认Item6:拒绝复制Item7:为多态基类声明virtual析构函数Item8:别让异常逃离析构函数Item9:绝不在构造和析构过程中调用virtual函数Item10:令operator= 返回一个reference to *thisItem11:在operator= 里处理“自我赋值”...

2018-04-05 22:52:17 178

原创 QT学习笔记二

布局管理布局管理器基本布局管理器栅格布局管理器表单布局管理器分裂器设置伙伴应用程序主窗口主窗口框架富文本处理富文本文档结构文本块表格、列表和图片语法高亮HTML拖放操作打印文档布局管理布局管理器Qt中主要提供了QLayout类及其子类来作为布局管理器 当部件加入到一个布局管理器中,然后这个布局管理器再放到一个窗口部...

2018-04-01 23:40:41 221

原创 QT学习笔记一

QT学习笔记一

2018-03-31 16:26:29 253

原创 Effective C++ 读书笔记一

2018.3.27几点说明从C转向C++内存管理2018.3.28哎,竟然看的第二版,也是醉了,重新看!!正文之前让自己习惯C++Item 1: View C++ as a federation of languages.Item 2: Prefer consts, enums, and inlines to #defines.Item 3: Use const when...

2018-03-30 00:48:46 184

原创 STL源码分析一: STL 概论

前言现在的工作我不是很喜欢,就是在造轮子,而且预计以维护为主,造轮子为辅。既然涉及C++,我是准备把经典书籍都看一遍,前几年工作内容不同,使用语言也不同,也就看点皮毛《C++ Primer》都没看完。按理说应该先读其他书,敲下少说上万行代码再来看stl,特别是应该先用再看实现,可我发现那样效率不高,不如跟着代码,学与用结合。学习编程最重要的一个步骤是实践,其次是思考。希望阅读中自己牢记...

2018-03-27 00:45:43 290

原创 muduo网络库net篇五:TCP(2)

Acceptor类Acceptor类主要成员数据: EventLoop* loop_; Socket acceptSocket_; Channel acceptChannel_; NewConnectionCallback newConnectionCallback_;传统服务端socket模型为: 创建服务端socket,bind地址,监听list

2018-01-22 12:12:08 181

原创 muduo网络库net篇四:TCP(1)

这几天有去面试,回来之后,懈怠了。接着阅读代码吧!TcpClient类TcpClient类主要成员数据: EventLoop* loop_; ConnectorPtr connector_; // avoid revealing Connector ConnectionCallback connectionCallback_; MessageCallback me

2018-01-21 22:23:31 318

原创 muduo网络库net篇:写在进一步阅读之前

socketsockets命名空间封装linux API InetAddress封装sockaddr_in*赋值 Socket封装socket操作Buffer类关于Muduo 中输入输出缓冲区的设计与实现的原理,陈硕已经写的很详细了,可参考[Buffer 类的设计][1] 。在这里,我主要关注代码数据方面。 Buffer类成员数据如下:public: static

2018-01-16 17:09:50 264

原创 muduo网络库net篇三:I/O线程

EventLoopThread类EventLoopThread顾名思义,事件循环线程。 当创建此类线程,并执行:EventLoop* startLoop(); //启动线程 执行loop() 并返回线程loop_线程就会一直事件循环,直到对象析构或通过返回的loop_终止。 事件由主线程设置,且设置事件只能通过startLoop()返回的loop_,所以此函数会阻塞,直到线程给

2018-01-16 13:34:10 375

原创 muduo网络库net篇一:事件处理

时间有限,net篇采用边看代码边写。 net部分的类都定义在muduo::net命名空间下。EventLoop类这个类涉及好几个类: boost::scoped_ptr poller_; boost::scoped_ptr timerQueue_; boost::scoped_ptr wakeupChannel_; ChannelList activeChannels_;

2018-01-16 11:34:24 268

原创 muduo网络库net篇二:定时器

Timer、TimerId类Timer类主要成员数据: const TimerCallback callback_; //回调函数 Timestamp expiration_; //定时器超时时间 const double interval_; //定时器超时时间 const bool repeat_; //interval_>0 const int64_t seq

2018-01-16 11:30:08 511

原创 muduo网络库之补充

废话base部分看了两天代码,写博文却用了更长时间。原因在于总在斟酌写多少合适,加上初次写博文难免不知道怎么下手。 我写下其实主要为了加强理解,其次为了自己今后能看看,如果能帮助后来者理解更好不过,但也不奢求。 其实还是有好多东西没有写下,我已经说过,我并没有实际撸过C++,所以源码中一些看似基础的东西,其实我并不是特别清楚。 有的东西实在不该在解读代码的地方赘述。这里单独加上一篇,把一

2018-01-14 18:54:57 211

原创 muduo网络库base篇五:进程信息 文件 日志

进程信息 获取/proc/seft文件夹各文件中数据参数及系统参数文件ReadSmallFile类 读取文件数据到缓冲区 AppendFile类 设置缓冲区为64KB,写采用fwrite_unlocked,并非线程安全GzipFile类 .gz的文件处理LogFile类 const string basename_; const off_t rollSi

2018-01-14 16:36:53 399

原创 muduo网络库base篇四:生产者/消费者

生产者与消费者模式是解决并发的有效手段。缓冲队列muduo实现了两种缓冲队列:有界缓冲队列和无边界缓冲队列 无边界缓冲队列BlockingQueue比较简单,成员数据如下:mutable MutexLock mutex_;Condition notEmpty_;std::deque queue_;逻辑:Created with Raph

2018-01-14 14:21:13 213

原创 muduo网络库base篇三:线程

muduo线程部分,分为线程安全、线程同步、以及线程本身,由于单例模式也是和线程相关,所以也放在一起写。线程class Thread : boost::noncopyable{ public: typedef boost::functionvoid ()> ThreadFunc; private: bool started_; bool

2018-01-14 12:06:13 271

原创 muduo网络库base篇二:Time! Time!

基础类 Types.h copyable.h可复制类继承copyable,否则继承boost::noncopyable。 对C++类型转换进行扩展,implicit_cast 隐式类型转换,down_cast指针转换(父类对象->子类对象)。时间日期类 Date类在muduo::detail下实现儒略日算法及转换年月日结构函数 Date类使用儒略日 可以通过年月日

2018-01-13 12:05:51 324

原创 muduo网络库base篇一: 大纲

上周我选择性的读了Linux/UNIX系统编程手册 大部分章节,想更深入了解linux系统编程。 作为一个知乎深度受害者,在知乎 你读过的最好的 C++ 开源代码是什么? 问题下,看到有人提到muduo。离职也快两周了,为了下份工作充充电,作为多年没撸过C++代码的渣渣,硬着头皮开启了膜拜大师之旅。闲言少叙……我用了两天时间读了base部分代码,按照阅读顺序,主要内容如下: 1.基

2018-01-12 17:47:07 370

原创 C++ 和 Java 过程篇

作为一个菜鸟,C++ 和 Java 都没有编过几行代码,然而,必须强行写点东西。C++ 和 Java 真的很像了,从语法上来讲,两者越来越接近。大多数书都是从语法的角度来讲语言,哗啦啦的看完,被满满的细节束缚。今天突然想,是不是应该从实现的角度来看待呢?作为一个语言,你想做什么呢?先从面向过程的角度谈谈:你怎么写,到最后都是0101的二进制,所以从二进制回头看,你想知道这段二进

2016-05-28 13:17:49 262

空空如也

空空如也

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

TA关注的人

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