自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

子凡的专栏

木巾木

  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

转载 透彻理解 Java synchronized 对象锁和类锁的区别

synchronized 加到 static 方法前面是给class 加锁,即类锁;而synchronized 加到非静态方法前面是给对象上锁。这两者的区别我用代码来演示下:对象锁和类锁是不同的锁,所以多个线程同时执行这2个不同锁的方法时,是异步的。在Task2 中定义三个方法 doLongTimeTaskA和doLongTimeTaskB是类锁,而doLongTimeTaskC是对象锁。publ...

2018-02-12 09:08:10 842

转载 HDFS原理

HDFS(Hadoop Distribute File System)基于谷歌发布的GFS论文呢设计(RPC通信方式) 大文件、流式数据适合、大量小文件、随机写入、低延迟读取不适合。 特点 高容错、高吞吐量、大文件存储HDFS能做什么硬件失效流式数据访问:块方式读取、128M一个块(大文件的读取)存储数据大:数据的一致性:一次写入多次读取、支持追加不能修改多硬件平台:移动计算能力:就近原则(计算离...

2018-02-09 08:47:47 269

转载 Zookeeper的功能以及工作原理

1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 NameSer...

2018-02-08 19:58:21 208

转载 Kafka史上最详细原理总结

KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Link...

2018-02-08 19:22:45 2458

转载 解释:内存溢出、内存泄露、内存越界、缓冲区溢出、栈溢出

内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。================================================================内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也

2014-12-03 14:50:47 6695

原创 调用OCX控件时的声明和实现

#if !defined(AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__INCLUDED_)#define AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__INCLUDED_#if _MSC_VER > 1000#pragma once#end

2014-11-29 21:17:52 5717

转载 使用VS2010创建MFC ActiveX工程项目

1.ActiveX的基本概念         ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。         ActiveX控件的后缀名是OCX或者DLL。一般是以OCX和动态库共存的形式打包成cab或者exe的文件放在服务器上,客户端下载后运行安装cab或exe解压成O

2014-11-27 22:45:47 1439

转载 C++实现链式二叉树,操作包括初始化二叉树、前序遍历、中序遍历、后序遍历、层次遍历

C++实现链式二叉树,操作包括初始化二叉树、前序遍历、中序遍历、后序遍历、层次遍历 [cpp] view plaincopy// BinaryTree.cpp : 定义控制台应用程序的入口点。  //C++实现链式二叉树,操作包括初始化二叉树、前序遍历、中序遍历、后序遍历、层次遍历、树的深度  #include "stdafx.h"  #

2014-11-24 21:17:05 2187

转载 Windows Socket五种I/O模型——代码全攻略

Winsock 的I/O操作:1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。为了解决这个问题

2014-11-24 16:33:10 1963 1

转载 不注册直接使用COM组件的方法

1. 定义导出函数指针     [cpp] view plaincopy//定义函数指针  typedef   HRESULT    (_stdcall *Func) (REFCLSID , REFIID , LPVOID*);  Func   g_DllGetClassObject=NULL;    

2014-11-24 16:26:12 2772

转载 CToolTipCtrl在CComboBox控件上显示提示信息

CToolTipCtrl m_tooltip;CRect rect;OnInitDialog()中:         GetDlgItem(IDC_COMBO1)->GetClientRect(rect);OnMouseMove中:         m_tooltip.Create(this);m_tooltip.Activate(true);m_too

2014-08-27 11:22:05 763

转载 c++多态实现的机制

1 什么是多态?多态性可以简单的概括为“1个接口,多种方法”,在程序运行的过程中才决定调用的机制程序实现上是这样,通过父类指针调用子类的函数,可以让父类指针有多种形态。2 实现机制举一个例子:#include class animal{public:void sleep(){cout}void breathe(){cout}};

2014-08-19 11:11:42 521

转载 内核态和用户态

就像世界上的人并不平等一样,并不是所有的程序都是平等的。世界上有的人占有资源多,有的人占有资源少,有的人来了,别人得让出资源,有的人则专门为别人让出资源。程序也是这样,有的程序可以访问计算机的任何资源,有的程序则只能访问非常受限的少量资源。而操作系统作为计算机的管理者,自然不能和被管理者享受一样的待遇,它应该享有更多的方便或特权。为了区分不用程序的不同权利,人们发胆了内核和用户态的概念。那

2014-07-29 17:28:41 783

转载 临界区(Critical section)与互斥体(Mutex)的区别

1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁操作,速度慢。3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用。1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2、互斥量:为协调共同对

2014-07-29 17:16:07 2076

转载 Windows内存管理

本文主要内容:1.基本概念:物理内存、虚拟内存;物理地址、虚拟地址、逻辑地址;页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一、基本概念1. 两个内存概念物理内存:人尽皆知,就是插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存

2014-07-29 16:42:13 443

转载 串的模式匹配

所谓串的模式匹配,简单说就是指给定一个主串T(text)和一个子串P(pattern),求在T中第一次出现P的位置索引。例如T=”timercrack likes to sleep”,P=”likes”,则P在T中的位置索引为12。首先,让我们来看一种朴素的匹配算法,设T[n]存放主串,P[m]存放子串(模式串),则算法可以这样描述://朴素的模式匹配算法int

2014-07-29 14:01:28 2994

转载 const char*, char const*, char*const的区别

const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 这个知识易混点之前是看过了,今天做Linux上写GTK程序时又出现个Warning,发散一下又想到这个问题,于是翻起来重嚼一下。事实上这个概念谁都有只是三种声明方式非常相似:Bjarne在他的The C++ Programming Language里面给出过一个助

2014-07-28 20:18:33 714

转载 c中不安全的函数

C 中大多数缓冲区溢出问题可以直接追溯到标准 C 库。最有害的罪魁祸首是不进行自变量检查的、有问题的字符串操作(strcpy、strcat、sprintf 和 gets)。一般来讲,象“避免使用 strcpy()”和“永远不使用 gets()”这样严格的规则接近于这个要求。       今天,编写的程序仍然利用这些调用,因为从来没有人教开发人员避免使用它们。某些人从各处获得某个提示,但即使

2014-07-28 18:04:58 12776

转载 关​于​W​i​n​d​o​w​s​消​息​队​列​的​几​个​问​题

1.是否所有的消息都是以WM_开头?   否,还有Prefix Message categoryDocumentationABM and ABN Application desktop toolbarShell Messages and NotificationsACM and ACN Animation controlAnimation Con

2014-07-28 16:34:38 713

转载 windows消息和消息队列

与基于MS - DOS的应用程序不同,Windows的应用程序是事件(消息)驱动的。它们不会显式地调用函数(如C运行时库调用)来获取输入,而是等待windows向它们传递输入。 windows系统把应用程序的输入事件传递给各个窗口,每个窗口有一个函数,称为窗口消息处理函数。窗口消息处理函数处理各种用户输入,处理完成后再将控制权交还给系统。窗口消息处理函数一般是在注册一个窗口的时候指定的。你可以从典

2014-07-28 16:27:34 554

转载 全局变量与单件模式

全局变量是最容易引起初学者兴趣的了,在整个项目中,任何一个函数,每一行代码都可以轻易访问所有的全局变量,并且可以不用付出额外的代价,全局变量看起来就像是为懒惰的程序员设计的一条绿色通道,如果不想看到函数因为要与其他模块通信而动辄很多参数,或者像给程序始末的关键信息寻找一个最合适的存储位置,那么全局变量就是很好的解决方案但是在项目中,全局变量肯定不少,这个时候,使用起来就会比较混乱,这个时候

2014-07-25 14:18:33 1705

转载 Socket send函数和recv函数详解

1.send 函数int send( SOCKET s, const char FAR *buf, int len, int flags );      不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。    该函数的第一个参数指定发送端套接

2014-07-25 11:52:50 11253

转载 IO - 同步,异步,阻塞,非阻塞

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不

2014-07-25 10:32:38 469

转载 COM特性 包容和聚合

包容:假定我们已经实现了一个COM对象,不妨称它为对象A,它实现了接口ISomeIntf,之后,考虑到新的需要,我们要实现一个新的COM对象,称它为B,它既要实现接口ISomeIntf,也要实现接口IOtherIntf,而且,ISomeIntf接口所提供的服务与对象A所提供的服务基本一致,于是,我们考虑在实现对象B的过程中重用对象A的功能,只需要实现新添加的功能就可以完成对象B的开发工作。最简单的

2014-07-11 14:16:18 888

转载 要么滚回去,要么拼命

以前在墨尔本的一个室友,突然打电话给我,在我这里马上要凌晨3点的时候。他让我猜他现在在哪里,我说不是在墨尔本嘛,你还能去哪。他很神秘地说,不是哦,我现在在西班牙。然后我一下子就愣住了。因为很久之前我在一个人人相册里看到有关西班牙的照片的时候,曾经跟他说,西班牙那么漂亮自己将来一定要去一次。 我没有想到的是,在我就要把自己曾经一闪而过的想法忘记的时候,他的电话就这么来了。到最后,站在我最想去的地方的

2014-07-11 13:06:07 1428

转载 C++ VS 2008中ATL的创建,使用。并在C++项目中进行调用测试

一、前言  1、本回讲解的是在 VS 2008 下的使用ATL. 并使用Win 32 Console Application进行测试以及C#项目进行测试(调用COM).    2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFunTest,它有一个简单的函数: Sum()完成两个数值的加法  3、ATL的介绍  

2014-07-11 12:49:10 860

转载 用VC进行COM编程所必须掌握的理论知识

一、为什么要用COM   软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的。结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然后合到一块,这已经有了组装的

2014-07-09 22:59:29 751

转载 可靠UDP传输的实现

一直纠结于UDP的可靠传输,在查看了UDT的相关介绍后,发现并不是我需要的,我需要的是一个可以进行多点传输的的可靠UDP。最终,还是自己慢慢把它完成了,虽然还不够好,不过总算出来个框架了,以后改就容易了 。        在算法上并没有什么特别的,就是不断的采用超时重发机制。在发送端,建立了一个庞大的发送缓冲区队列,每个发送过的发送单元都将自动被添加到这个发送缓冲区中,然后由维护线程来管理。在

2014-07-09 18:01:48 831

转载 C++的cout高阶格式化操作

这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等。通过本文,您可以完全脱离scanf/printf,仅使用cout来完成一切需要的格式化输入输出功能(从非性能的角度而言)。更进一步而言,您还可以在、上使用这些格式化操作,从而代替sprintf和fprintf函数。为方便描述,下文仅以cout为例进行介绍。 

2014-07-01 21:17:21 2604

转载 vs2010中臃肿的ipch和sdf文件

使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量,可惜毕竟硬盘还没有廉价到免费的地步。那么,该怎么解决呢?其实可以关闭它。方法:Tools->Options->Text Editor->C/C++->Advanced->Disable

2014-06-20 14:03:49 462

转载 IT人的附加价值——怎么薪水高赚大钱

做了8年的IT人了,常常看到论坛里有问工资的,北上广深的,做Java的,C的,前端的,嵌入式的,管理的,Android或IOS关于这个问题,我说一下我的感受:即便是对于现在的就业背景,IT或者相关专业就业前景和入门的门槛事实上并不难,如果你是有心人,有能力的,完全可以在大学时间就培养自己的实践能力和动手能力,那么进入这个行业是很容易的事,当然,现在还充斥这各种IT培训的,我个人认为

2013-10-24 21:19:24 700

计算机组成原理-唐塑飞[超高清pdf]

计算机组成原理 唐塑飞 编著 高等教育出版社

2013-07-01

编程珠玑(第二版)中文版超高清pdf

[美]Jon Bentley 著 谢君英 石朝江 译

2013-07-01

空空如也

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

TA关注的人

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