最近看了下多进程。一种接近底层的实现方法是使用
os.fork()方法,fork出子进程。但是这样做事有局限性的。比如windows的os模块里面没有 fork()
方法。windows:。linux:另外还有一个模块:subprocess。这个没整过,但从vamei的博客里看到说也同样有局限性。所...
分类:
编程语言 时间:
2014-05-07 18:26:17
阅读次数:
516
pid_t pid = fork();1.根据fork的返回值区分父子进程:fork 函数返回两次,
>0 表示父进程,返回值为子进程ID; =0 表示子进程; 。所以,在fork()之后,我们一般执行:waitpid(pid,NUL,0); 参数1:
pid表示到等待的子进程ID 参数2: N.....
分类:
其他好文 时间:
2014-05-07 10:25:35
阅读次数:
276
pid_t fork(void);返回值:
若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1int socketpair(int d, int type, int
protocol, int sv[2]);建立一对匿名的已经连接的套接字int ret = socke...
分类:
其他好文 时间:
2014-05-06 10:30:11
阅读次数:
438
fork两次然后在孙子进程中调用某函数避免孙子进程被kill掉产生僵尸进程 /*
这样做儿子进程很快就会退出,所以孙子进程不太可能产生僵尸进程,即使产生时间也极其短暂 */#include #include #include void
fork_grandson_run(void func(void...
分类:
其他好文 时间:
2014-05-05 22:13:00
阅读次数:
445
原文地址:http://www.cnblogs.com/mickole/p/3192210.html
一,什么是管道 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;
只能用于父子进程或者兄弟进程之间(具...
分类:
系统相关 时间:
2014-05-04 19:06:23
阅读次数:
517
Clientlogin1.SQLPlus请求使用TCP/IP连接指定TNS服务名如ubuntu。Clientprocess读取tnsnames.orafile向指定的主机发送数据包2.Server端接受请求监听器进程获取客户端发过来的TNS数据包。检查配置文件,符合配置则调用fork()生成子进程3.子进程收集本进程所在的主机名、IP地址及..
分类:
数据库 时间:
2014-05-02 03:02:28
阅读次数:
392
当前进程消亡时主要做了三件大事:释放当前进程占用的资源;为当前进程的子进程重新寻找“养父”;通知当前进程的父进程,释放当前进程剩下的资源。...
分类:
系统相关 时间:
2014-05-01 22:09:35
阅读次数:
607
1)父进程先于子进程终止:此种情况就是我们前面所用的孤儿进程。当父进程先退出时,系统会让init进程接管子进程
。2)子进程先于父进程终止,而父进程又没有调用wait或waitpid函数此种情况子进程进入僵死状态,并且会一直保持下去直到系统重启。子进程处于僵死状态时,内核只保存进程的一些必要信息以备...
分类:
其他好文 时间:
2014-05-01 19:14:22
阅读次数:
283
背景:
写了个程序,主要实现的功能为主线程创建两个子线程,之后主线程进入等待事件的循环。子线程1对临界资源cnt的值减2并输出cnt的值。子线程2对cnt的值加1并输出cnt的值,且当cnt为50的时候触发事件对象hend_even,子进程2退出。主线程收到hend_even后杀死子线程1,之后进入scanf阻塞。。。
代码示例:
#include
#include
DWORD WIN...
分类:
编程语言 时间:
2014-04-29 13:31:21
阅读次数:
377
说起共享内存,一般来说会让人想起下面一些方法:1、多线程。线程之间的内存都是共享的。更确切的说,属于同一进程的线程使用的是同一个地址空间,而不是在不同地址空间之间进行内存共享;2、父子进程间的内存共享。父进程以MAP_SHARED|MAP_ANONYMOUS选项mmap一块匿名内存,fork之后,其...
分类:
系统相关 时间:
2014-04-28 12:30:07
阅读次数:
720