自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

转载 【知识分享】异步调用与多线程的区别

<br /><br />随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想探讨一下如何使用并发来最大化程序的性能。<br />多线程和异步操作的异同<br />多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。多线程是实现异步的一个重要手段,但不是唯一手段,对以一个单线程

2010-12-24 17:58:00 540

转载 程序员不成熟的若干个特征

<br /><br />本文转自:http://blog.csdn.net/yincheng01/archive/2010/11/22/6026015.aspx<br /> <br />人成熟与不成熟跟年龄没有关系,人成熟不成熟,就是你能不能站在对方的角度去看待事物。就是能不能把我的世界变成你的世界。这个社会有很多的成年人,还没有脱离幼稚的行为。一点小事情就跟别人争来争去。<br />人不成熟的第一个特征------就是立即要回报<br />    他不懂得只有春天播种,秋天才会收获。很多人在做任何事情的时

2010-11-26 09:05:00 741 1

原创 C++编程思想读书笔记--C++中的C

<br /><br />一、数据类型– data type:定义使用存储空间(内存)的方式<br />(1)内部数据类型:编译器本身能理解的数据类型。标准C的内部类型规范不说明每个内部数据类型必须有多少位,只规定其必须能存储的最大值和最小值。<br />用户定义数据类型:抽象数据类型。<br />(2)4个基本数据类型:char、int、float、double<br />(3)说明符:short、long、signed、unsigned<br />(4)unsigned不保存符号,因此有一个多余位可以用,

2010-11-16 19:36:00 705

原创 “用户级线程”和“内核级线程”概念上的迷糊

<br /><br />线程的实现可以分为两类:用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread).后者又称为内核支持的线程或轻量级进程.<br />用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。<br /> <br />内核线程: 由操作系统内核创建和撤销。内核维护进程及线程的上下文信息以及线程切换。一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。

2010-11-15 22:36:00 1341

转载 腾讯12岁:马化腾致全体员工信

<br /><br />亲爱的同事:<br />就在两个小时前,我刚刚离开腾讯公司成立12周年庆典现场。在庆典现场,我更多的是强调感谢,感谢兄弟姐妹们十二年来与公司的相守,感谢危难时刻大家万众 一心的坚持。但是此时此刻,重回到自己的办公室,我还有一些思考想要分享给大家。我是一个不善言辞的人,所以选择邮件的方式与大家沟通。<br />公司成立以来,我们从未遭到如此巨大的安全危机。这段时间,我们一起度过了许多个不眠不休的日日夜夜。当我们回头看这些日日夜夜,也许记住的是劳累、是委屈、是无奈、是深入骨髓的乏力感。但

2010-11-12 16:50:00 710

原创 某软件研发笔试题 – 0的移动

<br /> <br />题目:<br />int a[nSize],其中隐藏着若干0,其余非0整数,写一个函数<br />int Func(int *a, int nSize);<br />使a把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)<br /> <br /> <br />解:<br />思路1:不知道这里的有序是什么个意思。是按照大小有序,还是按原来先后顺序有序。如果是原来先后顺序有序的话。只

2010-11-11 21:07:00 876

转载 致二叉树

  我如果爱你——   绝不像贪婪的迪杰斯特拉(Dijkstra)   想方设法寻求最短路径靠近你;   我如果爱你——   绝不学繁琐的佛洛依德(Floyd)  对结点重复单调的歌曲;   也不止像普利姆(Prim)  常年工作在稠密图上;  也不止像克鲁斯卡尔(Kruscal)   检查每一条边权值,构成你的强连通分量。   甚至AOV。   甚至AOE。   不,这些都还不够!   我必须是你近旁的一株最优二叉树,   作为树的形象和你站在一起。   结点根,紧握在地下   结点叶,相触在云里。   

2010-11-05 19:08:00 657

转载 并发(Concurrent)与并行(Parallel)的区别

并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生.来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头。所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不

2010-11-02 15:44:00 11423

转载 程序员能力矩阵 Programmer Competency Matrix

这是一个非常有趣的,从计算机科学、软件工程、程序设计、经验、学识各方面评估程序员能力的参照表。<br /><br /><br />如果你想看看自己的水平处在哪个层级(仅供参考),就快来看看吧~<br /><br />汉化版地址在这里。<br /><br /><br />错误在所难免,如果发现,请您拍砖!<br />*原作者 :Sijin Joseph<br />*英文原文请看 这里。<br />*感谢 bearice 提供修改意见和空间。

2010-06-09 13:03:00 668

转载 也说sizeof

今天看到这样一段代码,才发现一直都把一个概念弄错了。这段代码是这样的:#include int main(){ int i; int j; int *p[] = {&i, &j}; for (int ix = 0; i ------------------------------------------------------我是cheer up的分割线---------------

2010-06-05 23:18:00 882 1

原创 Some tips about Abstract base classes and pure virtual functions

  1、Often in a design, you want the base class to present only an interface for its derived classes, don't want anyone to actually create an object   2、This is accomplished by making that class abstract, which happens if you give it at least one pure virtu

2010-06-04 22:49:00 573 3

原创 notes of c++ primer (5) -- 纠结的虚函数表 之二

<br />  上次说到,多态机制依靠虚函数来实现。编译器看到virtual关键字,变进行动态绑定。<br />  典型的编译器对每个包含虚函数的类创建一个表,称为虚函数表(v-table)。编译器放置特定类的虚函数的地址。在每个带有虚函数的类中,编译器秘密地放置一个指针(vpointer),指向这个对象的虚函数表。当通过基类指针做虚函数调用时,编译器静态地插入一些代码,这些代码完成两个功能,一是取得这个指向虚函数表的指针,而是在虚函数表中查找真正需要调用的函数的地址,这样就能调用正确的函数并引起动态绑定的

2010-06-04 22:47:00 933 1

原创 有序链表合并的递归和非递归算法

也是在笔试和面试的时候遇到的,当时也就光记得《数据结构》上非递归算法了,今天都写在这,对比着记记。首先是递归算法,形参是两个链表第一个结点的指针。Node* mergAction(Node* head1,Node *head2){ Node *p=NULL; if(head1==NULL&&head2==NULL) return p; else if(head1==NULL) return head2; else if(head2==NUL

2010-06-03 23:40:00 5433 1

原创 notes of c++ primer (4) -- 纠结的虚函数表 之一

  C++中,存在特殊的类型/子类型关系,基类指针或引用可以直接引用其任意派生的子类,无需程序员介入。这种“用基类的指针或引用操纵多个类型”的能力就叫做多态,即“基类指针有多种形态”。  C++中的虚函数的作用主要是实现了多态的机制。什么又叫做虚函数呢?之所以被称为虚函数,是因为此类函数在被调用之前都不会确定会被谁调用。需要在运行的时候解析出被调用的函数,这个解析过程被称为动态绑定,又叫延迟绑定。在C++中,正是通过一种被称为虚拟函数的机制来支持动态绑定的。虚函数可以通过相同的函数实现不同的功能。这便是虚函

2010-06-02 23:10:00 999

原创 中兴捧月的某道预赛题

一直忙着折腾别的事,把预算给放一边了。幸好,离截至时间前20分钟提交了。选了一道简单的布雷,还有一个家访问题。布雷的程序就不拿出来说了,二十行不到,算法也简单。就在这说下教师家访问题吧。 题目是这样滴。 输入文件:student.txt distance.txt 你是小学某班主任,需要安排周六进行家访。于是打电话与家长联系,他们表示虽然比较忙,但还是会为你抽出一点时间。 由于有些家长时间上有冲突,并且一天内不能拜访所有家长,你需要一个程序安排一天的工作,使得你可以拜访最多的家长。注意

2010-06-01 20:49:00 1301 10

原创 面试问题

腾讯面试时候的几个问题,记在这里,先写两个,然后慢慢写,O(∩_∩)O~ 1、首先是笔试的时候就出现过的一道题,面试的时候又让我做,才发现笔试的时候就想错了。有如下代码: #include int main() {   int x = 1429;   int count = 0;   while(x)   {     x = x&(x-1);     cou

2010-05-30 11:09:00 609

原创 [总结] 二叉排序树

 1 概述二叉排序树(Binary Sorting Tree)或者是一棵空树,或者具有如下性质:(1)若它有左子树,则左子树上所有的结点的数据均小于根结点的数据;(2)若它有右子树,则右子树上所有的结点的数据均大于根结点的数据;(3)左、右子树本身又是一棵二叉排序树。如下图所示:易知:非空二叉排序树中结点数据是按照左子树、树、右子树这种顺序排列的。所以对其中序遍历得到的结点序列

2010-05-29 18:58:00 931

原创 notes of c++ primer (3) -- const的那些事

const类型限定修饰符,把一个对象转换成一个常量。因为常量在定以后就不能修改,所以必须被初始化。const int bufsize = 512; pointer to constant试图将一个非const对象的指针指向一个常量对象的动作都会引起编译错误。必须声明一个指向常量的指针来做这件事。const double *cptr;cptr是一个指向double类型const对象的指针,但cp

2010-05-27 23:43:00 586

原创 notes of c++ primer (2)

 The C++ Data Types  Pointer Types1、Every pointer has an associated type. The difference between pointers of different data types is neither in the representation of the pointer nor in the v

2010-05-26 15:59:00 598

原创 notes of c++ primer (1)

● Some tips1、标准C++中,如果main()函数没有显式地提供返回语句,则缺省返回02、标准C++头文件没有后缀,这是个例外。3、iostream操作符执行的是一个操作,而不是简单地提供数据。比如:endl在输出流中插入一个换行符,然后再刷新输出缓冲区。● 预处理1、由于存在嵌套包含文件的可能,一个头文件可能会多次包含在一个源文件中。条件指示符可以防止这种头文件的重复处理。例如

2010-05-26 15:54:00 489

原创 一道求循环小数的程序员笔试题

  题目是这样的:求两个数相除的商,并计算出小数点后的循环部分。例如1/3 商为0.333333333... ,则表示为0.(3)。  此题的关键是怎么判断商循环小数以及得到其循环部分。其实就是一个很简单的数学知识,如果两数相除,出现了两次相同的余数,则循环发生。  C#代码如下,其原理就是余数乘10再除以除数,若出现两次相同的余数,则可得到循环部分。using System;us

2010-03-19 20:22:00 1049

[O'Reilly]Programming Windows Presentation Foundation (2005).chm

O'Reilly的WPF经典教程,详细地介绍了WPF应用程序的创建,本书为英文版CHM格式。

2008-10-25

空空如也

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

TA关注的人

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