1. 内总管理原则(引用计数) IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引...
分类:
移动开发 时间:
2015-04-26 22:40:43
阅读次数:
227
首先我们需要了解的一个概念应该是临界资源和临界区.所谓临界资源即多个进程同时访问的一个资源.此资源的特点是同一时间只能有一个进程对它进行访问.而临界区的概念,就是我们的程序中,负责访问临界资源的那段代码,一般也就是那么几行而已....
分类:
其他好文 时间:
2015-04-26 18:24:02
阅读次数:
152
1. 编写一个基本的多线程程序(主线程里面创建一个子线程)
/*************************************************************************
> File Name: 1_homework.c
> Author: 梁惠涌
> Addr:
> Created Time: 2015年04月22日 星期三 15时22分34秒...
分类:
编程语言 时间:
2015-04-24 21:13:21
阅读次数:
177
操作系统中进程互斥和同步的实现的一个最基本的方方是使用信号量和PV原语。信号量S的物理意义:当S≥0的时候表示,某个资源可以使用的数量,当S0(有资源可用),所以P进程就可以执行啦,否则就是执行P之前S≤0(没资源可用),所以P进程就被阻塞了。V操作也是一样,如果执行V操作之后S≤0,那么说明执行V...
分类:
其他好文 时间:
2015-04-24 12:04:50
阅读次数:
146
信号量Semaphore Semaphore实现的功能就类似厕所有5个坑,假如有10个人要上厕所,那么同时只能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中 的任何一个人让开后,其中等待的另外5个人中又有一个人可以占用了。另外等待的5个人中可以是随机获得优先机会,也可以是按照先来后到的顺...
分类:
编程语言 时间:
2015-04-23 19:11:55
阅读次数:
130
#include // 调度程序头文件,定义了任务结构task_struct、初始任务0 的数据,// 还有一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。8 #include // 内核头文件。含有一些内核常用函数的原形定义。9 #include // 段操作头文件。定义了有关段寄存器操作的嵌入式汇编函数。1011 #include // 信号头文件。定义信号符号常量,信号结构以及信号操作函...
分类:
系统相关 时间:
2015-04-21 13:04:27
阅读次数:
194
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。
采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息...
分类:
系统相关 时间:
2015-04-20 21:00:16
阅读次数:
278
import?java.util.concurrent.ExecutorService;
import?java.util.concurrent.Executors;
import?java.util.concurrent.Semaphore;
/**
?*?信号量
?*
?*?@author?Vincent?Zhao
?*?@version?1.0.0
?...
分类:
其他好文 时间:
2015-04-20 17:10:07
阅读次数:
122
文章结构:wait()的阻塞问题signal()函数讲解示例代码wait()的阻塞问题 之前的多进程:父进程监听子进程状态 wait()的使用文章中,父进程为了获取子进程的SIGSTOP、SIGTERM等信号时,由于调用了wait而导致主进程一直阻塞。在实际的开发中,主进程在等待子进程状态变化时还会有其它的事情要去执行,所以需要一种异步回调机制,让主进程可以在执行其它任务的时候,又可以监听到子进...
分类:
编程语言 时间:
2015-04-20 09:25:23
阅读次数:
457
HANDLE hSemaphore;
cout<<1<<endl;
hSemaphore = CreateSemaphore( NULL, 0, 10000, NULL);
ReleaseSemaphore(hSemaphore, 1, NULL);
ReleaseSemaphore(hSemaphore, 1, NULL);
DWORD dwWaitResult = WaitForSin...
分类:
编程语言 时间:
2015-04-17 22:17:56
阅读次数:
168