摘要: 等待线程完成: join;只可调用一次,此外最好在调用之前调用joinable测试是否可调用;此外调用join后线程已不可用,joinable将fanhuifalse。 分离线程: detach:一般作为后台运行的线程,有时候还是有用的。但需要处理好线程所持有的资源、生命周期的问题,可以使用长生命周期的资源 或者拷贝一份资源到该线程的堆栈里而不是共享使用资源。调用detach后线程执行与线程对象将 阅读全文
posted @ 2019-10-10 13:19 浩月星空 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 何为并发: 两个或者多个独立活动同时发生,对于单核心的任务切换也认为是并发。 目前真正有意义的是硬件并发,对于多核心多线程的任务,并发程度取决于可用的硬件并发。 任务切换存在一定的上下文切换开销,以保存当前CPU状态、PC、指令等, 同样的切换回另个任务时需要重新加载早期的处理状态、内存载入缓存等。 另外并发和并行也存在一定的差异。 并发方式: 多进程并发:进程间独立执行任务,且通过进程间通信传递 阅读全文
posted @ 2019-10-10 13:17 浩月星空 阅读(419) 评论(0) 推荐(0) 编辑
摘要: glog为google开源库用于实现应用层日志记录,提供了基于C++ Stream流及各种帮助宏定义的日志记录接口,提供到控制台、文件的日志记录功能; 以下以基于windows平台下,最基本框架使用入手,分析该开源项目,示例代码; #define GOOGLE_GLOG_DLL_DECL #defi 阅读全文
posted @ 2019-10-10 13:04 浩月星空 阅读(2862) 评论(0) 推荐(0) 编辑
摘要: ProtoBuf项目描述: Google Protocol Buffer简称protobuf,为高效的二进制序列化/反序列化协议(一般为google内部使用),不同于xml、json等,其更小巧、高效;avro、thrift等; 其可用于网络协议、数据存储等语言无关、平台无关、可扩展的序列化结构数据格式。只要按照特定条件可支持向前、向后兼容;目前提供了C++、Java、Python 三种... 阅读全文
posted @ 2019-10-10 12:50 浩月星空 阅读(3227) 评论(0) 推荐(1) 编辑
摘要: char_traits.h : __char_traits_base:字符特性模板基类: 内部重声明了char_type字符类型,int_type整型类型; 此外提供了多个静态成员函数,如: assign:分配函数,将源字符内容赋值给目标字符;此外还有一个重载版本,其将某个字符赋值给指定长度n的字符串缓冲区,即赋值n次(注意目标缓冲区大小不可小于n); eq:相等比较函数,比较两个参数字符内容,相 阅读全文
posted @ 2019-10-10 12:39 浩月星空 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:37 浩月星空 阅读(347) 评论(0) 推荐(0) 编辑
摘要: stl_set.h : set:有序关联容器,值类型和键类型为同一个,且各个容器元素唯一,插入或删除在线性时间内完成,此外插入等操作不会影响迭代器失效的情况; set:关联容器set模板类,其参数分别为_Key、_Compare、_Alloc,对应键值类型、比较函数、内存分配器; 此外提供了特化版本,其比较函数使用的是less,分配器使用宏__STL_DEFAU... 阅读全文
posted @ 2019-10-10 12:36 浩月星空 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:34 浩月星空 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:32 浩月星空 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:31 浩月星空 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:30 浩月星空 阅读(257) 评论(0) 推荐(0) 编辑
摘要: stl_bvector.h : bit_vector 重声明为vector即使用alloc作为内存分配器,其为非模板类,__BVECTOR也即vector为模板类,若使bit_vector重声明为__BVECTOR则也可为模板类; 相比vector,其可保持一个位一个元素而不是至少一个字节一个元素;此外基本的函数和vector相同,还有其他额外的提供的接口实现; bit_... 阅读全文
posted @ 2019-10-10 12:29 浩月星空 阅读(529) 评论(0) 推荐(0) 编辑
摘要: utility: stl_relops.h : 内部提供了重载模板operator!=、operator>、operator=,而这几个模板函数内部使用到了operator==以及operator其中T*为 申请到的空间地址,第二个参数为实际分配到的空间大小;最大可申请大小为INT_MAX / sizeof(T);申请策略为:先调整申请大小并申请需求大小空间(内部通过malloc... 阅读全文
posted @ 2019-10-10 12:27 浩月星空 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:26 浩月星空 阅读(159) 评论(0) 推荐(0) 编辑
摘要: stl_construct.h : 提供多种构造器、销毁器模板函数; 构造器construct提供了给定值构造和默认构造方式,通过调用重载函数_Construct实现; 销毁器destroy提供了销毁指针和迭代器的方式,通过调用重载函数_Destroy实现; _Construct:通过“放置”new,构造实现; _Destroy:通过调用模板类型对象析构函... 阅读全文
posted @ 2019-10-10 12:25 浩月星空 阅读(152) 评论(0) 推荐(0) 编辑
摘要: stl_exception.h : 异常处理,通过宏提供可继承于标准exception或简易异常基类_Exception作为整个STL的异常基类; stdexcept : __Named_exception命名异常基类,继承于stl_exception.h中的异常基类,_M_name:最大256字节数组,保存异常信息; 其他异常类,如继承体系(分为两大类:逻辑错... 阅读全文
posted @ 2019-10-10 12:24 浩月星空 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:22 浩月星空 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 一、QT与JS/HTML通信交互 前提: 提前连接QWebFrame的javaScriptWindwoObjectCleared信号时将自身对象添加到JS窗口对象中,也即是:QwebFrame::addToJavaScriptWindowObject(“someobj”, this); 其中someobj便是JS中可调用的QT对象名称,即someobj指代传入的this对象; 其次,JS中可调用的 阅读全文
posted @ 2019-10-10 11:44 浩月星空 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 第一部分 基本操作 以Ubuntu16.04操作系统为例(其他系统类似),主要记录常用的、基本操作: 0. 安装Git 分散型版本控制系统(CVS); sudo apt-get install git 1. 初始化本地配置git或其他配置等(配置仓库或者全局选项,一般保存在.gitconfig中) 阅读全文
posted @ 2019-10-10 11:37 浩月星空 阅读(336) 评论(0) 推荐(0) 编辑
摘要: VS2010支持C++11特性的部分记录: 语言特性: 1. 右值引用 2. static_assert 3. auto 4. decltype 类型提取 5. 结尾返回类型,即函数返回类型声明后置,类似于auto func(int i, int j) -> int; 6. Lambdas表达式 7 阅读全文
posted @ 2019-10-10 11:25 浩月星空 阅读(2732) 评论(0) 推荐(0) 编辑
摘要: 目标 需支持种类繁多的数据类型、跨语言、跨平台、高性能、兼容性且可扩展 数据类型系统 传输层 Transport 编码/解码层(或序列化/反序列化,协议层) Protocol 版本系统 支持可插拔、兼容的数据的机制 处理器 生成代码和RPC调用 Processor 特性和非特性 特性 中间语言描述文 阅读全文
posted @ 2019-10-10 11:20 浩月星空 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 即 Windows 下的命名空间扩展 命名空间扩展 一种允许将外部自定义的信息集成到windows资源管理器,以用户自定义显示方式来处理数据信息,资源管理器提供必要的控制、交互接口、GUI实现。 实现命名空间扩展 一个文件件管理器对象,用于请求其其需要的信息 一个显示文件夹内容的视图窗口 一个枚举文 阅读全文
posted @ 2019-10-10 11:16 浩月星空 阅读(2525) 评论(1) 推荐(0) 编辑
摘要: 一、COM组件基础 1.程序的编写方式 1) 面向过程的结构化编程 自顶向下的编程方式(流程图) 2) 面向对象的编程 以对象或以类为中心,更符合人的思维习惯,通过模拟现实情况完成软件的编写。(类图) 3) 面向组件的编程 将一些功能直接封装成可以执行的二进制模块,类似于搭积木的方式。更适合大型项目 阅读全文
posted @ 2019-10-10 11:04 浩月星空 阅读(1391) 评论(0) 推荐(0) 编辑
摘要: 一、 Windows 内存管理 2.1 用户地址空间 0 - 2G(0x7FFFFFFF )存放用户的程序和数据。用户空间的代码是不能访问内核空间的数据和代码。 2.1.1 空指针区(NULL区,0-64K)系统将地址小于64K指针,都认为是空指针。 2.1.2 用户区 64K~ 0x7FFEFFF 阅读全文
posted @ 2019-10-10 10:59 浩月星空 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 1、 多文档界面(MDI) MDI主窗口(主框架窗口MainFrame) MDI客户窗口(MDICLIENT) MDI 子窗口1 MDI 子窗口2 ……. 1)创建MDI主窗口 a) 没有父窗口,需要注册窗口类,定义窗口过程函数 b) MDI主窗口的窗口过程函数,不再调用DefWindowProc。 阅读全文
posted @ 2019-10-10 10:58 浩月星空 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 一、 文字 1.绘制文字: TextOut – 绘制单行文字: 将文字绘制在指定坐标位置 BOOL TextOut( HDC hdc, // 设备上下文 int nXStart, // 文本行开始位置 int nYStart, // LPCTSTR lpString, // 文本串 int cbSt 阅读全文
posted @ 2019-10-10 10:56 浩月星空 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 有多种方式来获取hadoop集群,包括从其他人获取或是自行搭建专属集群,抑或是从Cloudera Manager 或apach ambari等管理工具来构建hadoop集群等,但是由自己搭建则可以了解大量的常规构建和维护过程,可以从操作的角度来理解hadoop的工作机制,当然对于大部分用户和操作者应 阅读全文
posted @ 2018-08-04 11:15 浩月星空 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 很多时候项目中会用到各种各样的库或者自行实现一些库封装,例如Word、Excel操作、数据库操作、网络通信、检测工具等,下面罗列一些部分想到的库,后面会逐步添加完善; 目前罗列一下项目中常用的一些第三方开源库: C++: word:一般基于Windows的COM等需要office安装套件支持的API 阅读全文
posted @ 2017-08-19 12:25 浩月星空 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 一 、小记; PostQuitMessage(0); 产生WM_QUIT消息给进程队列,且立即返回,同时使得消息循环退出,使得进程终止。(其实它通过PostMessage(hWnd,WM_QUIT,0,0)发送消息) MoveWindow();//移动窗口 BOOL MoveWindow( HWND 阅读全文
posted @ 2017-04-23 17:41 浩月星空 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 一、几个常用小工具: 1. 编译器:CL.EXE 将源文件转变为目标文件(汇编语言)。 CL.EXE /c xxx.c 或 xx.cpp cl.exe -? 显示cl帮助 cl.exe /c 只编译不链接 cl.exe /Tc 编译c文件 cl.exe /l 头文件路径 链接器:LINK.EXE 将 阅读全文
posted @ 2017-04-22 11:07 浩月星空 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 0. Python安装 官网提供多种方式,一般Windows下直接安装exe即可;Linux下基本上自带python;另外也提供源码,也可自行编译; 若安装后无法使用,则检查一下环境变量是否设置正确。 额外:除了最主要的官网资料、文档外,Python的wiki也提供了很多有用的信息 1. Pytho 阅读全文
posted @ 2017-03-19 16:19 浩月星空 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 以下笔记为在看书和实践的过程中的部分记录总结: 0. 窗口布局 1) 支持绝对布局和布局管理器布局; 2) 绝对布局不够灵活、无法自动调整大小,需要手动编写代码调整; 3) 布局管理器管理布局比较灵活、可自动调整管理的其下部件大小、位置; 4) 布局管理器目前有基本布局QBoxLayout(水平布局 阅读全文
posted @ 2017-02-25 19:52 浩月星空 阅读(2118) 评论(0) 推荐(0) 编辑
摘要: 以下只是开发中可能用的比较多的工具,另外还有其他很多未曾提及的实用工具。Linux篇: 1.链接过程的调试:主要用于查看构建过程;如链接时加载的动态库以及运行时加载动态库过程的调试 支持LD_DEBUG环境变量(glibc下提供给加载器便于调试的一个环境变量); 常用的使用方法: LD_DEBUG= 阅读全文
posted @ 2017-02-25 19:14 浩月星空 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 1. 计算存储和处理的信息以01二进制信号表示。 2. 计算针对较小范围的整数是精确表示的,而对浮点数则是近似表示的。 3. 整数计算溢出,不因交换律、结合律而改变该溢出后的值,浮点运算溢出则正负号始终保持。 4. 计算机信息的存储:8位的块(即字节)作为最小可寻址的内存单位。二进制、十六进制、十进 阅读全文
posted @ 2017-01-02 11:46 浩月星空 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 这一章节主要从整体上粗略地介绍了该书中涉及到的知识如以下几点: 1、信息的存储:比特串位; 2、C程序编译过程: 1) 源码(.c)经过预处理器得到修改后的文件(.i)(主要是扩展include或者宏替换等); 2) .i文件再经过编译器编译为汇编文件(.s); 3) .s汇编文件通过汇编器编译为目 阅读全文
posted @ 2017-01-01 17:57 浩月星空 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 《深度探索c++对象模型》这本书是我工作一段时间后想更深入了解C++的底层实现知识,如内存布局、模型、内存大小、继承、虚函数表等而阅读的;此外在很多面试或者工作中,对底层的知识的足够了解也是非常有帮助的; 对于需要深入C/C++语言、更好的掌握该语言,《深度探索c++对象模型》这本书一定是必读之一, 阅读全文
posted @ 2016-12-31 22:28 浩月星空 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 《深入理解计算机系统》第三版刚出来不到一周,便买下了这本书;之所以阅读本书,一方面源于网友推荐以及豆瓣不错的评分、评价;另一方面是针对本人非科班出身,计算机系统相关的知识相对比较薄弱,很多情况下此类知识需要工作之外的时间自学、补涨此类知识,而该书从程序员的角度进行阐述、展示了计算机系统的各个层面的知 阅读全文
posted @ 2016-12-31 21:56 浩月星空 阅读(619) 评论(0) 推荐(0) 编辑
摘要: locale.h 区域设置相关,主要针对时间日期、货币格式、字符控制、数字格式等以满足某区域的设置需要。 locale设置类别主要包括以下几个宏定义的类别: LC_ALL:设置所有的类别; LC_COLLATE:设置控制整理顺序; LC_CTYPE:设置字符分类; LC_MONETARY:设置货币的 阅读全文
posted @ 2016-12-04 14:00 浩月星空 阅读(2169) 评论(0) 推荐(0) 编辑
摘要: limits.h 类似于float.h,其定义了一些列类型的值的范围、限制值,也就是说该类型的值不可以大于该上界或者小于该类型值的下界; glibc中宏定义了一下的值: # define MB_LEN_MAX 16 // 多字节字符的最大字节(byte)数为16位 # define CHAR_BIT 阅读全文
posted @ 2016-12-03 16:05 浩月星空 阅读(1185) 评论(0) 推荐(0) 编辑
摘要: float.h 内部主要包含了一系列的浮点数宏、指明可移植程序必要的常量;浮点数格式一般为Spxbe;其中S表示+-;p表示底数、b表示基数如2、8、10、16等进制,e为指数标识E或e; 在一般情况下可以直接使用该头文件中宏定义的值。 glibc下没有专门针对float.h的文件,其一般以stdl 阅读全文
posted @ 2016-12-03 15:33 浩月星空 阅读(1917) 评论(0) 推荐(0) 编辑