linux fork 函数目的
来源:互联网 发布:unity3d手游开发教程 编辑:程序博客网 时间:2024/06/05 10:24
fork 函数透析
简单的使用fork函数也许是再简单不过吧!
开始思考,fork函数到底有什么作用,何时使用这个函数呢?这是我将透析fork的原因。
fork函数基本知识
fork函数的基本知识,将不会是本文讨论的重点。
写实拷贝页实现,说白了就是子进程和父进程共享数据,只有在需要的时候,才会去copy 操作。
fork 函数使用目的
本人思考:只要是需要处理多个独立任务的应用程序都应该用到fork来新建完全独立的进程来执行任务。
说白点就是在一个程序中启动另一个程序
当你要创建一个子进程的时候就用fork()函数,它一般有两种应用,
第一,创建一个子进程用来执行和父进程不同的代码段,这个在网络中应用比较广,比如服务器端fork一个子进程用来等待客户端的请求,当请求到来时,子进程响应这个请求,而父进程则继续等待客户端请求的到来;
第二,创建一个子进程用来执行和父进程不同的程序,这种应用往往 fork一个子进程之后立即调用exec族函数,exec族函数则调用新的程序来代替新创建的子进程。
说明;
fork一般用于实现并发操作,在网络编程中用的很多(主要用来实现并发服务器)。
服务器进程一般执行函数的流程是socket()->bind()->listen()->accept(),此后端口即进入阻塞状态,如客户端调用connect后,经tcp三路握手建立连接。
如果是迭代服务器的话,一般在listen()后接着一个for(;语句,把accept放在里面,只有在完成一个服务后才能为下一个用户提供服务,如:
listen();
for(;
{
connfd=accept();
service()...;
close(connfd);
}
当操作比较耗时时,考虑实行并发服务,这时的for变为:
for(;
{
connfd=accept();
if ((pid=fork()) == 0)
{
close(listenfd);
service() .... ;
close connfd;
exit(0)
}
close(connfd);
}
vfork 函数
对fork函数有了理解,vfork 应该也是同理!
- linux fork 函数目的
- linux fork() 函数学习
- linux fork()函数学习
- linux fork函数学习
- linux fork()函数学习
- linux fork函数浅析
- Linux fork()函数学习
- linux C fork函数
- linux fork函数浅析
- fork()函数 Linux
- fork()函数 Linux
- linux fork函数浅析
- linux fork函数浅析
- linux fork 函数解析
- linux fork函数浅析
- Linux fork函数
- Linux fork 函数详解
- Linux Fork函数讲解
- android:layout_gravity和android:gravity的区别
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
- 第四周作业——图的表示
- 一步步学习微软InfoPath2010和SP2010--第十章节--与SharePoint Designer工作流的InfoPath集成(4)--工作流任务表单
- jpa+spring配置多数据源
- linux fork 函数目的
- Spring 2.5 注释驱动的 IoC 功能
- Codeforence 337A Puzzles
- java中ConcurrentLinkedQueue类
- USC 1143: 显示器
- 第29天
- 导入android工程后出现The resource is not on the build path of a java project
- 证书安装
- java 字节流与字符流的区别