一个简单的改进方案是在服务器端使用多线程(或多进程)。多线程(或多进程)的目的是让每个连接都拥有独立的线程(或进程),这样任何一个连接的阻塞都不会影响其他的连接。具体使用多进程还是多线程,并没有一个特定的模式。传统意义上,进程的开销要远远大于线程,所以如果需要同时为较多的客户机提供服务,则不推荐使用多进程;如果单个服务执行体需要消耗较多的CPU资源,譬如需要进行大规模或长时间的数据运算或文件访问,则进程较为安全。通常,使用pthread_create ()创建新线程,fork()创建新进程。
回调函数和异步调用
回调函数知乎的一个介绍
异步调用介绍
共享内存
共享内存
Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。
共享内存,各个进程可以共享同一块物理内存,进程可以直接读写内存,不需要数据拷贝。
由于多个进程共享一块内存,所以也需要同步机制
一实现步骤
步骤:
本进程创建
1) 创建内存映射文件对象 CreateFileMapping
Windows 即在物理内存申请一块指定大小的内存区域,,返回文件映射对象的句柄 hMap
2) 将内存对象映射在进程地址空间 MapViewOfFile
其它进程访问这个内存对象时,
1) OpenFileMapping 获取对象句柄,
2) 调用 MapViewOfFile映射在自己的进程空间