标签:存储类型 clr 课程 声明 资源 共享 操作 join 分离
例如:在父进程中接受客户端请求,然后创建新的子进程来为每个客户端服务。
select函数处理类型为fd_set的集合,也叫做描述符集合,并在逻辑上描述为一个大小为n的位向量:b_n-1,...b_1,b_0*
描述符:
基于I/O多路复用的并发事件驱动服务器
比基于进程的设计给了程序员更多的对程序行为的控制。
一个基于I/O多路复用的事件驱动服务器是运行在单一进程上下文中的,因此每个逻辑流都能访问该进程的全部地址空间。,使得在流之间共享数据变得容易。
事件驱动设计常常比基于进程的设计要高效得多,因为它们不需要进程上下文切换来调度新进程。
这是上面两种方法的混合,结合了上面两种方法的特性。
每个线程都有自己的线程上下文,包括:
终止线程
初始化进程:调用pthread_once来初始化与线程的相关状态;
进度图
进度图是将n个并发线程的执行模型化为一条n维笛卡尔空间中的轨迹线。
将指令执行模型为一种状态到另一种状态的转换。
合法转换:向右或向上。
点(L1,S2)对应线程完成L1,而线程2完成S2状态
信号量:是用信号量解决同步问题,信号量s是具有非负整数值的全局变量,有两种特殊的操作来处理,称为P和V:
P(s):如果s非零,那么P将s减1,并且立即返回。
V(s):V操作将s加1,并重启一个阻塞的线程
生产者-消费者问题:因为插入和取出项目都涉及更新共享变量,所以要保证:对缓冲区的访问是互斥的。
读者-写者问题:修改对象的线程叫做写者;只读对象的线程叫做读者。写者必须拥有对对象的独占访问,而读者可以和无限多个其他读者共享对象。
使用线程提高并行性:多核处理可以并行。
不安全函数类
显式可重入的:所有函数参数都是传值传递,没有指针,并且所有的数据引用都是本地的自动栈变量,没有引用静态或全剧变量。
隐式可重入的:调用线程小心的传递指向非共享数据的指针。
死锁:一组线程被阻塞了,等待一个永远也不会为真的条件。
20145234黄斐《信息安全系统设计基础》第十三周学习总结
标签:存储类型 clr 课程 声明 资源 共享 操作 join 分离
原文地址:http://www.cnblogs.com/taigenzhenjun/p/6160429.html