- 博客(14)
- 资源 (9)
- 收藏
- 关注
转载 linux线程,进程经典文章
一.基础知识:线程和进程 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。 无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,
2006-11-15 23:46:00 862
转载 Linux 进程管理
1、程序和进程;程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,apache服务器将会创建有多个httpd进程来对其进行服务。1.1 进程分类;进程一般
2006-11-15 23:44:00 751
转载 堆和栈的详细介绍
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)
2006-11-15 23:36:00 3793
转载 C++ 虚函数 多态
1、什么是虚函数和多态 虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。 多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。 举个例子说明虚函数、多态、早绑定和晚
2006-11-15 23:33:00 893
转载 C++中的强制类型转换
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。 3
2006-11-15 23:29:00 4022
转载 C++中包含有虚函数的单继承状态下的类的内存布局
如下测试代码:#includeiostream>using namespace std;class base...{ public: base() ...{ cout"create base"endl; }; virtual ~base() ...{ cout"clean base"endl; }; virtua
2006-11-15 23:26:00 906
转载 关于this指针
初学者对this指针真的是很好奇,因为它很神秘。其实,只要以平常心来看待,this就很平常了。1. this只能在成员函数中使用。全局函数,静态函数都不能使用this。实际上,成员函数默认第一个参数为T* const register this。如: class A{public: int func(int p){}};其中,func的原型在编译器看来应该是: int func(A* cons
2006-11-15 23:25:00 767
转载 C++代码优化方法总结
优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。目录: 一. 优化之前 二. 声明的放置 三. 内联函数 四. 优化你的内存使用 五. 速度优化 六. 最后的求助一. 优
2006-11-15 23:19:00 849
转载 操作符重载
3种实现方式:成员函数;友员函数;普通函数。 class Employee { protected: // … public: // … Employee & operator ++() { Age ++; return *this; } friend Employee & operator --(
2006-11-15 23:12:00 738
转载 内存对齐(#pragma pack)
#pragma pack(4) class TestB { public: int aa; char a; short b; char c; }; int nSize = sizeof(TestB); 这里nSize结果为12,在预料之中。 现在去掉第一个成员变量为如下代码: #pragma pack(4) class TestC { public
2006-11-15 22:54:00 766
转载 C/C++动态内存创建与内存管理
1 内存空间逻辑组织A 静态数据区:内存在程序启动的时候才被分配,而且可能直到程序开始执行的时候才被初始化,如函数中的静态变量就是在程序第一次执行到定义该变量的代码时才被初始化。所分配的内存在程序的整个运行期间都存在,如全局变量,static变量等。注意:初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过void*来访问
2006-11-15 22:53:00 996
转载 C中的可变参数研究
一. 何谓可变参数int printf( const char* format, ...); 这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用”…”表示). 而我们又可以用各种方式来调用printf,如:printf("%d",value); printf("%s",str); printf("the number is %d ,string
2006-11-15 22:44:00 663
转载 memcpy和memmove的区别与实现
memcpy和memmove函数的实现 区别:从DESCRIPTION看来,两者的功能基本相同,唯一不同的是,当 dest 和 src 有重叠的时候选用不同的函数可能会造成不同的结果。不妨写个小程序来测一下: 0 #i nclude 1 #i nclude 23 int main()4 {5 int i = 0;6 int a[10]
2006-11-15 22:28:00 1880
转载 类的构造函数、析构函数与赋值函数
构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如 A(void);
2006-11-15 22:18:00 766
Packtpub.Solr.1.4.Enterprise.Search.Server.Aug.2009.pdf
2010-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人