多线程编程的一点讨论
来源:互联网 发布:java实现dijkstra 编辑:程序博客网 时间:2024/05/21 15:07
本来列下如下题目甚至更多,没有时间去整理。
简单说说吧:
一、线程带来的好处是低计算任务环境中的快速响应(如:GUI)和多CPU的充分利用,妄想通过多线程让许多计算量大的任务在单CPU上提速,那是笑话。
二、同步:只要明白了为什么要同步,那多线程就没什么难的了。换个角度,把共享数据作成线程安全的后,也就没有了线程难控的一些问题。搜索Monitor模式解决线程间共享数据一致性问题。
三、理解何时引发这种数据访问不一致,当然是共享的了(如:全局数据)。说点低级的:不是只要共享对象就要加锁,还要看对象是否有状态,无状态对象只是操作的集合而已。尽量使用堆栈,这会简化线程问题,因为线程切换时自动保存函数活堆栈。
四、大致听过几个锁:自旋锁——它适合短时间操作加锁,又称闪锁,利用硬件机制的加锁,它所带来的好处是开销低,还有内存屏蔽(百度一下,我也懒得查了)。而Mutex等内核对象锁,涉及系统资源的分配以及执行时开销都很大。
五、看看ACE的线程库:并发和同步策略。
好了,好累~~~~~~~~~~~~
一、 线程模型
三、线程同步
简单说说吧:
一、线程带来的好处是低计算任务环境中的快速响应(如:GUI)和多CPU的充分利用,妄想通过多线程让许多计算量大的任务在单CPU上提速,那是笑话。
二、同步:只要明白了为什么要同步,那多线程就没什么难的了。换个角度,把共享数据作成线程安全的后,也就没有了线程难控的一些问题。搜索Monitor模式解决线程间共享数据一致性问题。
三、理解何时引发这种数据访问不一致,当然是共享的了(如:全局数据)。说点低级的:不是只要共享对象就要加锁,还要看对象是否有状态,无状态对象只是操作的集合而已。尽量使用堆栈,这会简化线程问题,因为线程切换时自动保存函数活堆栈。
四、大致听过几个锁:自旋锁——它适合短时间操作加锁,又称闪锁,利用硬件机制的加锁,它所带来的好处是开销低,还有内存屏蔽(百度一下,我也懒得查了)。而Mutex等内核对象锁,涉及系统资源的分配以及执行时开销都很大。
五、看看ACE的线程库:并发和同步策略。
好了,好累~~~~~~~~~~~~
一、 线程模型
- 用户级线程模型(N:1)
- 系统级线程模型(1:)
- 混合线程模型(M:N)
三、线程同步
- 多线程编程的一点讨论
- Java多线程编程的讨论
- addSubView的一点讨论
- 关于JAVA多线程编程的一点笔记
- 继续讨论win32下的多线程编程问题
- 多线程编程中条件变量和虚假唤醒的讨论
- wince romfs的一点讨论
- wince romfs的一点讨论
- 有关生活的一点讨论
- [技术讨论]看了73篇极限编程论文后的感觉和一点总结
- 一点关于java多线程编程的效率问题
- 什么时候该使用多线程,以及更恰当的多线程编程方法之讨论
- 多线程的一点讲解
- 多线程的一点思考
- 多线程的一点小事
- 关于程序设计风格的一点讨论
- 关于程序风格的一点讨论。
- 关于Response.Write输出的一点讨论!
- DELPHI讲义
- 组织管理体系推广经验之二-软件项目为什么有了PM和PMO还需要SQA?
- 面向对象学习1部分
- 组织管理体系推广经验之三-项目管理体系的投资与回报分析
- 组织管理体系推广经验之四-适用性带来的阻力
- 多线程编程的一点讨论
- API SelectObject
- API SelectObject
- WMP11 官方简体中文版下载
- java 字符的转化
- “我顶你个肺”是什么意思?
- JFreeChart学习
- 操作image类型数据
- XmlHttp