代码来源:游双的linux高性能服务器编程
主进程创建一个进程池,当有客户端发送请求时,主进程选择一个进程与该客户端进行通信,为了简单期间,去掉了一些信号处理代码,其中信号的用法可以参考基于多进程的网络聊天程序
服务器代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-08-12 17:09:34
阅读次数:
179
MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参数,即“跳过外部锁定”。根据MySQL开发网站的官方解释,External-locking用于多进程条件下为MyISAM数据表进行锁定。如果你有多台服务器使用同一个数据库目录(不建议),那么每台服务器都必须开...
分类:
数据库 时间:
2014-08-12 13:30:34
阅读次数:
219
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-08-12 13:16:24
阅读次数:
228
用一个进程进行文件的拷贝和用两个进程实现文件的拷贝,我想效率肯定不一样的,那么多文件进程的拷贝,你造吗?...
分类:
系统相关 时间:
2014-08-09 11:37:17
阅读次数:
308
SQLite是一个文件数据库,不像Mysql,Oracle等数据库有很多进程,被很多语言bullet-in成了自己的模块,python、php、ruby都支持,作为一个小app或者更大软件不需要连接网络上数据库是一个很好的选择,一些linux主机还会初始安装sqlite.下面给出一个最简单的示例代码:importsqli..
分类:
数据库 时间:
2014-08-08 18:27:27
阅读次数:
243
I/O复用模型
I/O复用原理:让应用程序可以同时对多个I/O端口进行监控以判断其上的操作是否可以进行,达到时间复用的目的。在书上看到一个例子来解释I/O的原理,我觉得很形象,如果用监控来自10根不同地方的水管(I/O端口)是否有水流到达(即是否可读),那么需要10个人(即10个线程或10处代码)来做这件事。如果利用某种技术(比如摄像头)把这10根水管的状态情况统一传达到某一点,那么就只需要1个...
分类:
编程语言 时间:
2014-08-08 18:14:16
阅读次数:
253
作为linux系统运维或者linux下的数据库DBA,很多时候需要写一些脚本来帮组我们实现某些需求,如果脚本内的某些内容能够试下并行处理,将大大提高工作的速度。不多说,上脚本先举一个顺序执行的例子:[root@xxtest]#cattest.sh#!/bin/bashforiin{1..5};dosleep1;echo"hello"done..
分类:
系统相关 时间:
2014-08-08 16:22:36
阅读次数:
250
参考:linux高性能服务器编程,作者:游双
程序简介:该程序用了共享内存来实现进程间的同步,由于只是同时读取共享内存,所以没有用到锁。该程序的功能是服务器监听网络连接,当有一个客户端连接时,服务器创建一个子进程处理该连接。每个子进程只负责自己的客户端以及和父进程通信。当子进程从客户端读取数据后,把数据放到共享内存上,每个子进程在共享内存上有自己的一段空间,因此不会出现同时写。放上去后通知父进程...
分类:
其他好文 时间:
2014-08-07 13:14:00
阅读次数:
230
<?php //在程序需要分叉的时候,使用pcntl_fork()产生子进程,然后多线程同时执行任务 $pid = pcntl_fork(); if($pdi < 0) exit('fork error!'); if($pid) { //如果pid大于0,那么是父进程, //这边让父进程直接...
分类:
Web程序 时间:
2014-08-06 18:07:51
阅读次数:
268
php多进程使用pcntl_*系列函数 自己目前就知道一个 pcntl_fork() ,生成子进程 int(1) } 上面是当前get的值 array(1) { ["a"]=> int(1) } 上面是当前get的值 说明: ...
分类:
Web程序 时间:
2014-08-05 21:47:20
阅读次数:
308