多进程间通信方式和多线程同步机制总结
2016-06-24 18:49
225 查看
原文出自:/article/2581761.html
多进程之间通信方式:
文件映射:本地之间
共享内存:本地之间
匿名管道:本地之间
命名管道:跨服务器
邮件槽:一对多的传输数据,通常通过网络向一台Windows机器传输
剪切板:本地之间
socket:跨服务器
多线程之间通信方式:
全局变量
自定义消息响应
多线程之间同步机制:
临界区:不可以跨进程,忘记解锁会无限等待,要么存在要么没有,多线程访问独占性共享资源
互斥量:可以跨进程,忘记解锁会自动释放,要么存在要么没有
事件:又叫线程触发器,不可以跨进程,要么存在要么没有,一个线程来唤醒另一个线程(包括自动和人工两种方式)
信号量:可以跨进程,始终代表可用资源数量,当资源数为o时,线程阻塞,允许多个线程同时访问一个共享资源
多线程程序:
多线程程序是并发执行,对于多线程的共用资源不能保证能被正确利用即不保证能被独占,并发执行的时候,哪个线程得到运行的机会是随机的也是不可预期。为了解决
多线程中某个线程对资源的独占(也就是多线程同步问题),只允许一个线程拥有共享资源的独占。即多线程之间的同步机制。
线程:
线程包括两个方面:第一:线程内核对象(OS用来存放统计信息的地方);第二:线程堆栈(函数参数和局部变量)
线程在它的进程的地址空间执行代码。内核对象句柄依赖于进程而存在。
创建线程函数后建议立刻关闭句柄closehandle();
多进程之间通信方式:
文件映射:本地之间
共享内存:本地之间
匿名管道:本地之间
命名管道:跨服务器
邮件槽:一对多的传输数据,通常通过网络向一台Windows机器传输
剪切板:本地之间
socket:跨服务器
多线程之间通信方式:
全局变量
自定义消息响应
多线程之间同步机制:
临界区:不可以跨进程,忘记解锁会无限等待,要么存在要么没有,多线程访问独占性共享资源
互斥量:可以跨进程,忘记解锁会自动释放,要么存在要么没有
事件:又叫线程触发器,不可以跨进程,要么存在要么没有,一个线程来唤醒另一个线程(包括自动和人工两种方式)
信号量:可以跨进程,始终代表可用资源数量,当资源数为o时,线程阻塞,允许多个线程同时访问一个共享资源
多线程程序:
多线程程序是并发执行,对于多线程的共用资源不能保证能被正确利用即不保证能被独占,并发执行的时候,哪个线程得到运行的机会是随机的也是不可预期。为了解决
多线程中某个线程对资源的独占(也就是多线程同步问题),只允许一个线程拥有共享资源的独占。即多线程之间的同步机制。
线程:
线程包括两个方面:第一:线程内核对象(OS用来存放统计信息的地方);第二:线程堆栈(函数参数和局部变量)
线程在它的进程的地址空间执行代码。内核对象句柄依赖于进程而存在。
创建线程函数后建议立刻关闭句柄closehandle();
相关文章推荐
- 关于html页面调式select下拉框的时候,被选中的没有加入selected属性
- Android补间动画(Tween Animation)的使用总结
- Unity中如何中断C#脚本的无限循环
- 两个栈实现一个队列
- 简简单单学会C#位运算
- 英国退出欧盟,欧盟还是欧盟吗?
- 软件工程学习体会
- Python即时网络爬虫项目启动说明
- 数据包在用户空间的状态
- JS实现多少小时前,多少天前...
- 从 Poisson 分布到服务器的访问
- XJOI网上同步训练DAY1 T3
- LBP算法(人脸识别特征提取)
- 自定义View系列教程04--Draw源码分析及其实践
- TabLayout控件的使用(一)
- API指南之应用清单文件
- 事件系统
- MySql中,复制旧表结构到新表
- Oracle包编译,调用或调试Package时卡死问题
- 当REST遇上Java