
Windows原理和实践
zencher
这个作者很懒,什么都没留下…
展开
-
实验:一个进程到底能创建多少线程?
在网上看到有朋友讨论,一个进程能创建的线程的最大数量,我学习了一下,做了这个小实验。 理论上,一个进程可用虚拟空间是2G,默认情况下,线程的栈的大小是1MB,所以理论上最多只能创建2048个线程。如果要创建多于2048的话,必须修改编译器的设置。怎么设置呆会儿再说。 在VC下写了一个控制台程序,目的很简单,就是创建4500个线程程原创 2008-08-07 20:48:00 · 6889 阅读 · 5 评论 -
用Delphi写一个Windows下的纯SDK程序
技术主管给我的一个考题:用Delphi写一个Windows下的纯SDK程序其实,无论是Delphi、C++ Builder,还是Visual C++,虽然这些IDE功能性能各异,但通过编译器编译出来的,在Windows上运行的二进制代码,其实是相通的。(其实到汇编层次你就会知道他们编译出的程序没有太大区别了)纯的SDK,不包含任何其他库类,是一种符合Windows程序设计的通用的标准,不经原创 2008-08-07 15:36:00 · 1391 阅读 · 0 评论 -
一个奇怪的死循环:帮助你理解地址空间和栈
有这样一个控制台程序,你知道他运行的结果吗? int main(){ int i, array[10]; for( i = 0; i { array[i]=0; }} 试着运行一下吧,你会发现,死循环了,为什么呢? 跟踪一下,你会发现,array[10] = 0; 这个操作改原创 2009-11-28 12:56:00 · 1721 阅读 · 3 评论 -
Windows内存管理 - 隐藏在new和malloc背后的heap
经常写在heap上分配内存的代码,却不知heap为何物,能吃几碗干饭。今天来介绍介绍,认识一下,以后好好相处。 先来说,heap是什么,heap就是堆,在不知道具体细节的时候,我们只知道,通过new和malloc,我们可以动态获得一个内存区域,用来存放自己的对象和变量,而这些内存区域都是在heap上的。heap应该就是一个内存区域吧。应该会有很多人这么认为过。 后来,学习了Win原创 2010-05-13 23:11:00 · 5295 阅读 · 1 评论