1进程与线程以及Linux中fork()的运用
来源:互联网 发布:开源cms建站系统 编辑:程序博客网 时间:2024/05/29 19:44
读《用TCP/IP进行网际互连——客户-服务器编程与应用(Linux/POSIX套接字版)》
第1章 引言和概述
TELNET的在LINUX和WIN7中的使用以及在WIN7中的启用方法
http://blog.csdn.net/qq_27607539/article/details/73715679
第2章 客户-服务器模型与软件设计
这章还为参透,之后看看能不能有所感悟吧。
第3章 客户-服务器软件中的并发处理
并发执行。
进程与线程的变量共享问题。
当多个线程并发地执行同一段代码时,对这段代码所涉及的变量,每个线程都应各有一份独立的副本。
每个进程拥有全局变量的副本;如果多个线程在同一个进程内执行,则它们各自拥有局部变量的副本,但都可共享进程的全局变量副本。
当多个线程并发地执行一段代码时,每个线程拥有自己的栈。
LINUX下的多进程编程。
fork()函数用来将运行着的程序分成2个几乎完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。
fork调用新创建的进程都是单线程的。
返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
包含头文件
#include<unistd.h>
#include<sys/types.h>
编程示例
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(void){
int pid;
pid=fork();
if(pid==-1) return -1;
if(pid==0){
//子进程
printf("这里是子进程!\n");
}else{
//父进程
printf("这里是父进程!\n");
printf("子进程的PID=%d\n",pid);
return 0;
}
}
LINUX下的C编译方法参考
http://blog.csdn.net/qq_27607539/article/details/73721946
上述代码编译运行结果如下:
进程之间是并发执行的,子进程的输出不一定在前。
- 1进程与线程以及Linux中fork()的运用
- Linux的进程,线程以及调度(fork与僵尸,内存泄漏,task结构体,停止状态与作业控制)
- Linux中进程、线程和fork()
- Linux线程的操作以及与进程的区别
- Linux线程浅析[关于线程的清理,与进程的对比,以及线程的各个状态]
- Linux中父子进程Fork与malloc关系示例
- 黑马程序员-进程与线程的区别与运用
- 线程创建,属性设置与获得,等待线程结束,线程中fork,以及执行exec()
- Linux--进程组,会话,精灵进程(fork一次与fork两次的区别)
- linux之多线程fork:进程通信
- Ubantu丨线程与进程fork()
- Linux的进程与线程
- linux的进程与线程
- Linux的进程与线程
- linux的进程与线程
- linux中fork()与vfork()的区别
- Linux进程池与线程池以及线程池的简单实现
- linux中线程的挂起与恢复(进程暂停)
- 计算机网络(概述上)
- JSP中三种注释的区别
- 抽象工厂
- 【PostgreSQL-9.6.3】psql常用命令
- HDU4750
- 1进程与线程以及Linux中fork()的运用
- Rokid Open Voice SDK快速集成指南
- Mybatis自动代码生成(使用交行BBIP框架)
- mybatis 逆向工程 generator xml
- 使用fs模块让你在开发项目中不用重复的去修改webpack的配置文件
- NAT技术与代理服务器调研
- Android中检查网络连接状态的变化,无网络时跳转到设置界面
- JS获取上一访问页面URL地址——(下)
- [Tomcat] Coyote连接器框架源码分析