摘要: 十进制转16进制 、十进制转二进制 函数 阅读全文
posted @ 2006-11-08 23:10 沧海-重庆 阅读(5840) 评论(4) 推荐(0) 编辑
摘要: 在bbs上,堆与栈的区分问题,似乎是一个永恒的话题,由此可见,初学者对此往往是混淆不清的,所以我决定拿他第一个开刀。 阅读全文
posted @ 2006-11-08 23:04 沧海-重庆 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 最大值堆(MAX-HEAP)的性质是任意一个结点的值都大于或者等于其任意一个子结点存储的值。由于根结点包含大于或等于其子结点的值,而其子结点又依次大于或者等于各自结点的值,所以根结点存储着该树的所有结点中的最大值。 阅读全文
posted @ 2006-11-08 22:24 沧海-重庆 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。 阅读全文
posted @ 2006-11-08 21:52 沧海-重庆 阅读(1266) 评论(2) 推荐(1) 编辑
摘要: 在c中,野指针也许性子野,但是控制起来也是有章可循。然而事情在c++中出现了变化。 阅读全文
posted @ 2006-11-08 21:50 沧海-重庆 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 许多 C 或者 C++ 程序员对垃圾回收嗤之以鼻,认为垃圾回收肯定比自己来管理动态内存要低效 阅读全文
posted @ 2006-11-08 21:49 沧海-重庆 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长 阅读全文
posted @ 2006-11-08 21:48 沧海-重庆 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 写出那些不会导致任何内存泄漏的代码。很明显,当你的代码中到处充满了new 操作、delete操作和指针运算的话,你将会在某个地方搞晕了头,导致内存泄漏,指针引用错误,以及诸如此类的问题。 阅读全文
posted @ 2006-11-08 21:47 沧海-重庆 阅读(297) 评论(0) 推荐(0) 编辑
摘要: C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员有了更广的发挥空间 阅读全文
posted @ 2006-11-08 21:43 沧海-重庆 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。 阅读全文
posted @ 2006-11-08 21:42 沧海-重庆 阅读(598) 评论(1) 推荐(0) 编辑
摘要: 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区 阅读全文
posted @ 2006-11-08 21:38 沧海-重庆 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 阅读全文
posted @ 2006-11-08 21:35 沧海-重庆 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 大家都知道变量的生存周期这个概念,可是有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的。文章举了四个不同的例子,来说明这其中的原因。 阅读全文
posted @ 2006-11-08 21:32 沧海-重庆 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 作为一个.NET程序员,我们知道托管代码的内存管理是自动的。.NET可以保证我们的托管程序在结束时全部释放,这为我们编程人员省去了不少麻烦,我们可以连想都不想怎么去管理内存,反正.NET自己会保证一切。好吧,有道理,有一定的道理。问题是,当我们用到非托管资源时.NET就不能自动管理了。这是因为非托管代码不受CLR(Common Language Runtime)控制,超出CLR的管理范围。那么如何处理这些非托管资源呢,.NET又是如何管理并释放托管资源的呢? 阅读全文
posted @ 2006-11-08 21:25 沧海-重庆 阅读(591) 评论(0) 推荐(0) 编辑
摘要: ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别: l 未提交读(read uncommitted) l 提交读(read committed) l 重复读(repeatable read) l 序列化(serializable) 也就是隔离级别,0,1,2,3。ANSI/ISO SQL92标准有很详细的说明,可是这个说明详细是详细,就是看不明白。今天经高人指点,茅厕顿开... 阅读全文
posted @ 2006-11-08 21:13 沧海-重庆 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 隔离属性是 ACID 的四个属性之一,逻辑工作单元必须具备这四个属性才能称为事务。该属性能够使事务免受其它并发事务所执行的更新的影响。每个事务的隔离级别实际上都是可以自定义的。 Microsoft® SQL Server™ 支持 SQL-92 中定义的事务隔离级别。设置事务隔离级别虽然使程序员承担了某些完整性问题所带来的风险,但可以换取对数据更大的并发访问权。与以前的隔离级别相比,每个隔离级别都提... 阅读全文
posted @ 2006-11-08 21:06 沧海-重庆 阅读(696) 评论(0) 推荐(0) 编辑
摘要: /* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient) * Reflector 了一下 System.Net.WebClient ,重载或增加了若干: * DownLoad、Upload 相关方法! * DownLoad 相关改动较大!... 阅读全文
posted @ 2006-11-08 21:02 沧海-重庆 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 三.线程的同步和通讯——生产者和消费者 假设这样一种情况,两个线程同时维护一个队列,如果一个线程对队列中添加元素,而另外一个线程从队列中取用元素,那么我们称添加元素的线程为生产者,称取用 元素的线程为消费者。生产者与消费者问题看起来很简单,但是却是多线程应用中一个必须解决的问题,它涉及到线程之间的同步和通讯问题。 前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相... 阅读全文
posted @ 2006-11-08 20:59 沧海-重庆 阅读(451) 评论(0) 推荐(0) 编辑
摘要: .NET将关于多线程的功能定义在System.Threading名字空间中。因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;)。 即使你没有编写多线程应用程序的经验,也可能听说过“启动线程”“杀死线程”这些词,其实除了这两个外,涉及多线程方面的还有诸如“暂停线程”“优先级”“挂起线程”“恢复线程”等等。下面将一个一个的解释。 a.启动线... 阅读全文
posted @ 2006-11-08 20:57 沧海-重庆 阅读(395) 评论(2) 推荐(0) 编辑
摘要: 线程(thread, 台湾称 执行绪)是"进程"中某个单一顺序的控制流。也被称为轻量进程(lightweight processes)。计算机科学术语,指运行中的程序的调度单位。 线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程... 阅读全文
posted @ 2006-11-08 20:53 沧海-重庆 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 本文假定您熟悉 Win32、C++ 和多线程处理。 下载本文的代码:CriticalSections.exe (415KB) 摘要 临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信... 阅读全文
posted @ 2006-11-08 20:46 沧海-重庆 阅读(722) 评论(0) 推荐(0) 编辑
摘要: [搜索技术] 搜索引擎经验总结 # 这里是一点我在学习和开发搜索引擎过程中的一点学习和经验总结,文中讲述了蜘蛛、切词、索引、查询器等名模块的一些概述和细节,希望能给搜索引擎中的初学点的一点帮助,对于那些高手也能够带来一点点启发的帮助!这是我在2004年学习和开发搜索引擎相关东西时的一点总结,可能比较肤浅,最近还是一直在搞这方面的研究,相对于这篇文章又有了一些新的总结,等以后有时间再写一篇... 阅读全文
posted @ 2006-11-08 20:43 沧海-重庆 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 许多程序员发现用VC++编写的程序在多处理器的电脑上运行会变得很慢,这种情况多是由于多个线程争用同一个资源引起的。对于用VC++编写的程序,问题出在VC++的内存管理的具体实现上。以下通过对这个问题的解释,提供一个简便的解决方法,使得这种程序在多处理器下避免出现运行瓶颈。这种方法在没有VC++程序的源代码时也能用。 问题 C和C++运行库提供了对于堆内存进行管理的函数:C提供的是mallo... 阅读全文
posted @ 2006-11-08 20:42 沧海-重庆 阅读(688) 评论(0) 推荐(0) 编辑
摘要: Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量、对象或内存空间的访问。下面是其主要的异同点(不同的地方用绿色表示)。 Mutex ... 阅读全文
posted @ 2006-11-08 20:39 沧海-重庆 阅读(2641) 评论(2) 推荐(0) 编辑
摘要: 线程同步的三种方式: 互斥对象 事件对象 关键代码段 三者的比较: n 互斥对象和事件对象属于内核对象,利用内核对象进行线程同步,速度较慢,但利用互斥对象和事件对象这样的内核对象,可以在多个进程中的各个线程间进行同步。 n 关键代码段是工作在用户方式下,同步速度较快,但在使用关键代码段时,很容易进入死锁状态,因为在等待进入关键代码段时无法设定超时值。 互斥对象: HAN... 阅读全文
posted @ 2006-11-08 20:32 沧海-重庆 阅读(3250) 评论(0) 推荐(0) 编辑