摘要: windows下进程间通信的手段有哪些?收藏摘要随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。关键词进程进程通信IPC Win32 API1进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个. 阅读全文
posted @ 2010-09-04 11:27 blockcipher 阅读(206) 评论(0) 推荐(0)
摘要: 在TCP的三次握手中,后采用随机产生的初始化序列号进行请求,这样做主要是出于网络安全的因素着想。如果不是随机产生初始序列号,黑客将会以很容易的方式获取到你与其他主机之间通信的初始化序列号,并且伪造序列号进行攻击,这已经成为一种很常见的网络攻击手段。通常短连接是这样:连接->传输数据->关闭连接那什么是长连接?一般长连接相对短连接而言的,长连接在传输完数后不关闭连接,而不断的发送包保持连接等待处理下一个数据包。such as:连接->传输数据->保持连接->传输数据->。。。->关闭连接。那什么时候用短连接呢?一般长连接用于少数client-endto 阅读全文
posted @ 2010-09-04 11:24 blockcipher 阅读(184) 评论(0) 推荐(0)
摘要: VC多线程编程收藏一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:voidCSingleThreadDlg::OnSleepSixSecond(){Sleep(6000);//延时6秒} 编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗时的操作,我们有必要学习——多线程编程。二、多线程概述 进程和线程... 阅读全文
posted @ 2010-09-04 11:17 blockcipher 阅读(115) 评论(0) 推荐(0)
摘要: 鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就是哪个好。 我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为是感性的比较,因此都是相对的,不是说一个好得不得了,另外一个差的无法忍受)。对比维度多进程多线程总结数 阅读全文
posted @ 2010-09-04 11:15 blockcipher 阅读(153) 评论(0) 推荐(0)
摘要: 设计模式原则详解收藏这篇文章,不需要你一次就看懂,如果你真的能一次都看懂,我想设计模式对于你来说已经没什么难度了..因为设计模式就是要体现这些原则的,你可以把设计原则看做是一门语言,设计模式是由这些语言编码的程序..你既然已经明白,精通了语言,剩下的编码自然是很简单的事情,编码的越多则经验越多,经验越多则对原则的理解就越深...这是一个学习领悟的过程.. 我希望这篇文章能帮助新人感受到设计模式的乐趣,避免重复编码....减少劳动量..如果你能在用心静静的体会文章的每个字,每段话的意思,这样可以避免走很多弯路...我以前学习设计模式的时候,就是因为忽略了原则,凭着感觉,看着书来学习设计模式,结果 阅读全文
posted @ 2010-09-04 11:15 blockcipher 阅读(138) 评论(0) 推荐(0)
摘要: 如何与你的老大沟通?看了CSDN冯大侠的《老大,我想说两句》,深有感触,因为我也曾经遇到过类似的情况,深知这种情况下个人的郁闷感觉。但现实毕竟是“老大”就是老大,你的前途、薪水都掌握在老大手里,抱怨和郁闷都不能解决问题,反而会使问题更加恶化;而且既然是老大,那么必然有过人之处(不管是技术、还是有关系、还是会说话,那都是老大的优势)。因此,我们要学会和老大沟通交流的技巧(当然这些技巧同样适合跟其他人沟通交流)。下面是我根据自己的经验总结的几条,希望对各位遇到类似问题的兄弟姐妹能有帮助。1)用别人听得懂的语言这个道理其实很简单,比如说你要和老美交流,你用中文,他只懂英文,你们能够交流吗?对老美你可 阅读全文
posted @ 2010-09-04 11:13 blockcipher 阅读(413) 评论(0) 推荐(0)
摘要: 食物有豆腐、豌豆、蛋白、牛奶、芹菜、土豆、竹笋、香菇、胡萝卜、海带、绿豆、橘子、香蕉、西瓜、柿子、草莓等。 弱碱性的食物有:豆腐、豌豆、大豆、绿豆、油菜、芹菜、番薯、莲藕、洋葱、茄子、南瓜、黄瓜、蘑菇、萝卜、牛奶等。而呈碱性的食物有:菠菜、白菜、卷心菜、生菜、胡萝卜、竹笋、马铃薯、海带、柑橘类、西瓜、葡萄、香蕉、草莓、板粟、柿子、咖啡、葡萄酒等。 多吃碱性食物。研究发现,多食碱性食物,可保持血液呈弱碱性,使得血液中乳酸、尿素等酸性物质减少,并能防止其在管壁上沉积,因而有软化血管的作用,故有人称碱性食物为“血液和血管的清洁剂”。这里所说的酸碱性,不是食物本身的性质,而是指食物经过消化吸收后,留在 阅读全文
posted @ 2010-09-04 11:08 blockcipher 阅读(945) 评论(0) 推荐(0)
摘要: 一个简单的面试题2010年6月23日 陈皓 发表评论 阅读评论 2,610 次点击 下面这篇文章是从StackOverflow来的。LZ面试的时候遇到了一道面试题:“如果有三个Bool型变量,请写出一程序得知其中有2个以上变量的值是true”,于是LZ做了下面的这样的程序:查看源代码打印帮助1boolean atLeastTwo(boolean a, boolean b, boolean c) { 2if ((a && b) || (b && c) || (a && c)) { 3return true; 4} else { 5return fa 阅读全文
posted @ 2010-09-04 11:02 blockcipher 阅读(180) 评论(0) 推荐(0)
摘要: 老大,我想说两句收藏老大,我想说两句电子票据系统,是一个内部管理系统加通过报文进行交易的系统,我负责的是报文交易处理这一块,开发设计报文服务。对于服务的开发,这知道这不同于一般的应用的开发,不一定要求界面美观,但是一定要充分考虑性能、效率、兼容性、健壮性、可扩展性、可维护性及开-闭性原则等方面。我在开发设计这一块的时候,尽量的采用合适的软件工程开发方法以及适合的JAVA模式,因为报文服务系统是为后面的不同交易准备的,并且要适合于多个行的不同环境、交易的不同实现方式等,我考虑了以下几点:1、需要考虑“开-闭”原则,以便于增加新的服务不修改原来的程序;2、使用里氏代换原则在系统中使用可配置原则,增 阅读全文
posted @ 2010-09-04 11:00 blockcipher 阅读(181) 评论(0) 推荐(0)
摘要: 内存池(MemPool)技术详解收藏本文已经迁移到:http://cpp.winxgui.com/cn:dive-into-memory-pool概述内存池(MemPool)技术备受推崇。我用google搜索了下,没有找到比较详细的原理性的文章,故此补充一个。另外,补充了boost::pool组件与经典MemPool的差异。同时也描述了MemPool在sgi-stl/stlport中的运用。经典的内存池技术经典的内存池(MemPool)技术,是一种用于分配大量大小相同的小对象的技术。通过该技术可以极大加快内存分配/释放过程。下面我们详细解释其中的奥妙。经典的内存池只涉及两个常量:MemBloc 阅读全文
posted @ 2010-09-04 10:54 blockcipher 阅读(759) 评论(0) 推荐(0)
摘要: 关于项目时间管理的六点须知收藏要想成为一名成功的项目经理,你必须能够管理好自己的时间。一名优秀的项目经理能够有效地进行时间管理,同时也能够避免时间的浪费。这里列出6点时间管理的技巧,帮你提高自己的时间管理的能力。1.制定工作计划工作计划与时间管理有什么关系吗? 如果每个人都知道了自己在做什么,而且制定了项目工作计划(里程碑计划),并且能够集中精力于此,那么作为项目经理的你,就可以减少花费在理那些缺乏明确性的问题上的时间。2.记住80/20原则80/20原则的基本理论是:你所做的20%努力会成就80%成果。80/20原则可以提醒你将20%的精力放在重要的事务上。在整个项目工作中仅有20%的工作是 阅读全文
posted @ 2010-09-04 10:53 blockcipher 阅读(197) 评论(0) 推荐(0)
摘要: 产品设计体会(3016)一个只有七天的项目收藏为了写书,我在翻看几年来的邮件,找到了一个只有七天的项目,光从项目日报里,就让我觉得那几天奋斗的时光恍如昨日:2009年3月23日星期一,我接到一个任务,说为了配合3月31日下周二的新闻发布会,要做一个项目。我做过不少这种救火队员式的任务,每次开始的时候老板总能让我的嘴张成一个O型——这怎么可能么,但结束的时候我们也屡次让老板的嘴张成O型——居然真做到了!一大早接到任务,迅速的四处找人组建临时团队、制定时间计划、讨论项目方案……我一直是反对加班的,但在这种情况下,晚上晚点走也是不可避免的了,不过,我 的计划中仍然留了余地:争取周五完成上线的准备,周 阅读全文
posted @ 2010-09-04 10:52 blockcipher 阅读(189) 评论(0) 推荐(0)
摘要: 1.【十二生肖】子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊、申猴、酉鸡、戌狗、亥猪2.【十大名茶】西湖龙井(浙江杭州西湖区)、碧螺春(江苏吴县太湖的洞庭山碧螺峰)、信阳毛尖(河南信阳车云山)、君山银针(湖南岳阳君山)、六安瓜片(安徽六安和金寨两县的齐云山)、黄山毛峰(安徽歙县黄山)、祁门红茶(安徽祁门县)、都匀毛尖(贵州都匀县)、铁观音(福建安溪县)、武夷岩茶(福建崇安县)3.【四大名绣】苏绣(苏州)、湘绣(湖南)、蜀绣(四川)、广绣(广东)4.【四大名扇】檀香扇(江苏)、火画扇(广东)、竹丝扇(四川)、绫绢扇(浙江)5.【四大名花】牡丹(河南洛阳)、水仙(福建漳州)、菊花(浙江杭州)、山 阅读全文
posted @ 2010-09-04 10:47 blockcipher 阅读(184) 评论(0) 推荐(0)
摘要: 过堆栈调用解析多线程收藏过堆栈调用解析多线程 首先说明一下,堆是进程的全局数据内存存储区,栈是函数的局部数据内存存储区。由于大多数书籍在介绍堆或栈时,皆以堆栈泛指,因此,题目标题亦如此表述,希望读者不要混淆就是了。 初见标题,也许有人觉得奇怪,多线程和堆栈有关系吗?初学多线程,很多概念难以辨清。要全面深入理解多线程,必须对栈有十分清楚的理解。个人感觉在Windows编程中,栈的概念犹如C/C++中的指针,非常重要,但难于全面理解。市面上的书籍对堆栈的介绍或是蜻蜓点水、浮于表面;或是过于理论化,不够具体,不易理解。在这里,我以示例的形式将自己的一点学习体会写出来与大家分享。为了便于表述清楚,文章 阅读全文
posted @ 2010-09-04 10:35 blockcipher 阅读(472) 评论(0) 推荐(0)
摘要: FS寄存器指向当前活动线程的TEB结构(线程结构)偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 FS段寄存器在内存中的镜像地址020 进程PID024 线程ID02C 指向线程局部存储指针030 PEB结构地址(进程结构)034 上个错误号得到KERNEL32.DLL基址的方法assume fs:nothing ;打开FS寄存器mov eax,fs:[30h] ;得到PEB结构地址mov eax,[eax + 0ch] ;得到PEB_LDR_DATA结构 阅读全文
posted @ 2010-09-04 10:33 blockcipher 阅读(304) 评论(0) 推荐(0)
摘要: 像Google一样开会收藏来源:Business Week翻译:@SweetRiver像Google一样开会“开会”,在现在的商业运转中,这两个字的名声非常不好,因为真正能通过会议这个形式取得什么成果的很少。我记得Dilbert(美国漫画家)曾经有一幅漫画这样画的:几个人围着桌子坐着,会议组织者说“今天会议没什么特别的议程。像往常一样,我们就就抱怨下、做些没什么干系的发言就好了”。现在会议基本上就是这样的,大部分的会议都是无序的、没有激情的、没有效率的。但我们的会议是可以开的更好的。当我决定写一篇关于如何开展有效会议的文章,我找到了Marissa Mayer (Google搜索产品的副总裁,s 阅读全文
posted @ 2010-09-04 10:32 blockcipher 阅读(182) 评论(0) 推荐(0)
摘要: 软件项目管理收藏软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。 软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。 软件项目管理的提出是在20世纪70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交,预算超支和质 阅读全文
posted @ 2010-09-04 10:31 blockcipher 阅读(228) 评论(0) 推荐(0)
摘要: 高效的会议管理-会议高手整理收藏如何才能够算一个成功的会议1.有效:集思广益,解决个人无法完成或突破的问题。达到会议目标。2.和谐:营造和谐气氛,大家对整个团队有安全感,信任感和认同感。3.参与:每个参与会议的人都必须用心去关注会议内容。4.效率:在会议规定的时间内完成,并形成结论和解决问题。5.学习:参与会议的过程也是个体学习的过程。会议通知必须包含的内容1.会议的名称:最好体现到Email主题上面一目了然2.会议的目的:是为了解决什么问题?3.会议的时间和地点:4.会议的议程:分为几个阶段,每个阶段的重点和内容,规划的时间。5.准备资料6.参会的人员:哪些是必须参会者,哪些是自愿参会者。会 阅读全文
posted @ 2010-09-04 10:29 blockcipher 阅读(239) 评论(0) 推荐(0)
摘要: 会议讨论技巧实战录收藏倘若将“六顶思考帽”这一思维逻辑引入到会议讨论当中,能帮助我们充分研究每一种情况和问题,讨论出超常规的解决方案。 会议中的许多议题,都可以通过设定时限控制好时间。影响会议效率的,往往是为达成某个决定的讨论环节,会议中最需要主持人和与会者具备技巧的,通常也是在这一环节。 流程确保会议高效 我们都希望会议更加高效,正确的会议流程应为: ①确定会议主持人 ②确定会议目标及议程 ③确定会议时间 ④选择适合会议主题的会议地点 ⑤确定与会人员 ⑥准备适当的视听辅助设施 ⑦确定达成会议决定的方法 ⑧发布会议通知及会前准备事项 ⑨会议记录 ⑩会后发布会议备忘录,落... 阅读全文
posted @ 2010-09-04 10:26 blockcipher 阅读(264) 评论(0) 推荐(0)
摘要: 蘑菇管理定律出自 MBA智库百科(http://wiki.mbalib.com/) 蘑菇管理定律(Mushroom Management)目录[隐藏]1什么是蘑菇管理定律2蘑菇管理定律的由来3管理中的蘑菇定律4蘑菇定律案例分析4.1案例一:卡莉·费奥丽娜从打杂到惠普CEO4.2案例二:所罗门王的礼物[编辑]什么是蘑菇管理定律 “蘑菇管理”指的是组织或个人对待新进者的一种管理心态。因为初学者常常被置于阴暗的角落,不受重视的部门,只是做一些打杂跑腿的工作,有时还会被浇上一头大粪,受到无端的批评、指责、代人受过,组织或个人任其自生自灭,初学者得不到必要的指导和提携,这种情况与蘑菇的生长情景 阅读全文
posted @ 2010-09-04 10:25 blockcipher 阅读(4781) 评论(0) 推荐(0)