上一篇博文可以实现基本的网络通信,但是只能服务给一个人,我们可以通过给每个客户端fork()一个子进程,来实现一对多的服务。
方法:
客户端连到服务器以后,服务器启动一个新创建的套接字对话,也就是说父进程可以继续连接下一个客户端,而子进程来需要处理
accept()创建的副套接字,实现通信功能。父进程克隆子进程后可以关闭副套接字close(connect_d),而子进程可以关闭主监听套...
分类:
其他好文 时间:
2014-05-26 05:02:14
阅读次数:
228
sleep_on用于进程休眠,原型如下:
void sleep_on(struct task_struct **p)
当进程访问某个互斥资源时,如果资源被另外进程占用,当前进程就需要休眠。
假设资源的结构如下:
struct res
{
....
struct task_struct *wait;
}
其实我们参考下文件系统的i节点就会发现,i节点也是一种资源,它的结构体中就有一...
分类:
系统相关 时间:
2014-05-26 04:28:02
阅读次数:
439
PGA (ProgramGlobal Area
)程序全局区
PGA是用户进程连接到数据库并创建一个对应的会话时,由ORACLE为服务器进程分配的专门用于当前用户会话的内存区,每个Oracle服务器进程都包含有属于自己的PGA,它只存储这个服务进程的相关信息。PGA是私有的而非共享的,当它对应的用户进程死掉后可将服务器进程及其资源清除和释放。PGA的构成:
l 排序区
用于存放排序操作产生...
分类:
数据库 时间:
2014-05-26 03:46:18
阅读次数:
375
1 进程终止的方法:
主线程的进入点函数返回(最好使用这个方法)
进程中的一个线程调用ExitProcesss函数(应该避免使用这种方法)。
另一个进程中的线程调用TerminateProcess函数(应该避免使用这种方法)。
进程中的所有线程自行终止运行(这种情况几乎从未发生)。
1.1 主线程进入点函数返回
始终都应该这样来设计应用程序,即只有当主线程的...
伴随着多核时代的到来,怎样充分利用好你的多个CPU的优势成了技术的关注点,那就是多线程多进程编程,二者的区别也很明显,进程是操作系统中拥有资源的最小单位,但是是重量级的。线程是系统调度的最小单位,是轻量级的,一个进程可以拥有很多个线程,但是线程是不拥有资源的,同一个进程中的线程共享这个进程中拥有的资源。以前学习java,一个灰常重要的并发方式就是多线程,因为线程的开销要比进程的少很多,而通过加锁来...
分类:
编程语言 时间:
2014-05-24 23:04:56
阅读次数:
389
每个Erlang进程创建之后都会有自己的PCB,栈,私有堆。erlang不知道他创建的进程会用到哪种场合下,所以一开始分配比较小。如果分配的空间不够了,erlang gc会动态调整堆大小以满足需求,如果分配的空间大了,就会回收内存。文章主要讲述Erlang进程堆垃圾回收机制,以及如何利用erlang gc机制对系统做一些优化...
分类:
其他好文 时间:
2014-05-24 14:28:44
阅读次数:
507
有很多方案,先来最傻瓜式的 :static class Program { /// ///
应用程序的主入口点。 /// [STAThread] static void Main() {
if(System.Diagnostics.Process....
1.耗时的操作使用线程,提高应用程序响应2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。3.多CPU系统中,使用线程提高CPU利用率4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独
立的运行部分,这样的程序会利于理解和修改。 使用多线程的理由之一....
分类:
编程语言 时间:
2014-05-24 10:20:51
阅读次数:
326
转:IOS Notification 通知中心:NSNotification1.
通知中心概述通知中心实际上是在程序内部提供了消息广播的一种机制。通知中心不能在进程间进行通信。实际上就是一个二传手,把接收到的消息,根据内部的一个消息转发表,来将消息转发给需要的对象。通知中心是基于观察者模式的,它允许...
分类:
移动开发 时间:
2014-05-24 09:57:18
阅读次数:
260
进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft
Win32应用编程接口(Application Programming Interface, API)....