Linux网络编程--程序,进程和线程
2016-04-12 13:43:21 20 举报
AI智能生成
登录查看完整内容
Linux网络编程学习思维导图
作者其他创作
大纲/内容
Linux网络编程--程序,进程和线程
概念
程序:指令和参数的组合
进程:操作系统执行的基本单位
线程:节省资源,可以在一个进程中共享资源的执行单位
进程产生
fork
复制父进程,修改id;返回两次
system
会调用fork,execve,waitpid...
返回-1失败,sh不能执行返回127,成功返回进程状态值
exec
不同于前两者,会用新进程代替原有进程(覆盖)//在原来的进程内部运行一个可执行文件
nice方案:fork--exec
进程间通信和同步
半双工管道
eg ls | grep *.c
创建:pipe()
FIFO(命名管道)
创建mkfifo()
默认是阻塞状态的,需要显示调用open打开
消息队列/linux/msg.h
键值构建ftok()
获得消息msgget()
发送消息msgsnd()
接收msgrcv()
控制消息msgctl()
信号量
创建semget()
信号量操作semop()
信号量控制semctl()
共享内存
创建shmget()
获得共享内存地址shmat()
删除一段共享内存shmdt()
控制shmctl()
信号signal
kill-l
信号截取函数signal()
对该信号挂接自己的处理函数/handler机制
向进程发送信号函数kill/raise()
Linux下的线程
线程优点
系统资源消耗低;速度快;线程间的数据共享比进程间容易
线程创建
pthread_create()
线程结束
pthread_join()、pthread_exit()
线程间互斥
0 条评论
回复 删除
下一页