一、死锁的定义:两个或多个进程在无限期的等待永远不会发生的条件系统处于停滞状态,这种现象称为进程死锁。二、产生死锁的必要条件:1:互斥使用(资源独占):一个资源每次只能给一个进程使用;2:不可强占(不可剥夺):资源申请者不能强行的从占有者手中读取资源,资源只能有占有者资源释放;3:请求和保持:一个进...
分类:
其他好文 时间:
2014-06-09 23:53:11
阅读次数:
448
出处
:http://blog.sina.com.cn/s/blog_75a2f94f0101gygh.html对于PHP这种需要同时处理多个请求的程序来说,申请和释放内存的时候应该慎之又慎,一不小心便会酿成大错。另一方面,除了要安全的申请和释放内存外,还应该做到内存的最小化使用,因为它可能要处理每...
分类:
Web程序 时间:
2014-06-09 22:53:30
阅读次数:
260
反初始化在一个类的实例被释放之前,反初始化函数被立即调用。用关键字deinit来标示反初始化函数,类似于初始化函数用init来标示。反初始化函数只适用于类类型。反初始化原理Swift会自动释放不再需要的实例以释放资源。如自动引用计数那一章描述,Swift通过自动引用计数(ARC)处理实例的内存管理。...
分类:
其他好文 时间:
2014-06-09 20:38:14
阅读次数:
323
我们都知道两个指针指向同一个变量时如果一个指针被释放那么另一个就会出问题为了说明问题我做了一个很恶心的小例子class C{public : C(int v)
{ ptrInt=new int; *ptrInt=v; valueInt = v; ...
分类:
编程语言 时间:
2014-06-09 16:11:08
阅读次数:
319
c#和java中有自己主动垃圾回收机制,.net执行时和java虚拟机能够管理分配的堆内存,在对象失去引用时自己主动回收,因此在c#和jva中,内存管理不是大问题。c++语言没有垃圾回收机制,必须自己去释放分配的堆内存,否则就会内存泄露。
我相信大部分c++开发者都遇到过内存泄露的问题,而查找内存....
分类:
编程语言 时间:
2014-06-09 00:44:19
阅读次数:
329
小节:异常其实就是将问题进行封装,抛给调用者。如果声明了,就需要调用者处理(继续抛或者捕获)。什么时候声明?什么时候捕获?功能内部可以解决就捕获,不能解决或者解决还必须告诉调用者问题,这时就应该声明。finally的作用:无论是否有异常发出,都需要资源进行释放。资源释放就是定义在finally的代码...
分类:
编程语言 时间:
2014-06-08 23:34:34
阅读次数:
395
最近搞一个winform的socket编程的课设,平时对winform这块没有研究,以为和C# web差不多的,不曾想窘状百出。没办法,只能硬着头皮赶紧学Form窗体的一些基本知识和socket编程。
首先,谈一谈学Form窗体的一些认识和感悟。
1.关于窗体应用的创建就不说了,当我们在一个项目中添加了多个窗体,
随之而来的调试问题就是:怎么设置首先运行的窗体呢?
解决方案:一般我...
newdelete与new[]delete[]必须配对使用
//注意,由于内置数据类型没有构造、析构函数,所以针对内置数据类型时,释放和内存使用delete或delete[]的效果是一样的。
例如:
int *pArray = new int[10];
...//processing code
delete pArray; //等同于delete[] pArray;
虽然针对...
分类:
其他好文 时间:
2014-06-08 08:33:53
阅读次数:
209
1,循环参照A有个属性参照B,B有个属性参照A,如果都是strong参照的话,两个对象都无法释放。这种问题常发生于把delegate声明为strong属性了。例,@interface
SampleViewController@property (nonatomic, strong) SampleCl...
分类:
其他好文 时间:
2014-06-07 23:40:44
阅读次数:
366
上一篇中介绍了内存管理的思路和算法,我们已经可以动态申请和释放内存了。这不就是堆(Heap)么。在此基础上,本篇要做一段程序,一并解决窗口和鼠标的叠加处理问题。
分类:
其他好文 时间:
2014-06-07 17:00:16
阅读次数:
196