您的位置:首页 > 编程语言

多线程编程的一点讨论

2006-08-18 10:26 190 查看
本来列下如下题目甚至更多,没有时间去整理。

简单说说吧:
一、线程带来的好处是低计算任务环境中的快速响应(如:GUI)和多CPU的充分利用,妄想通过多线程让许多计算量大的任务在单CPU上提速,那是笑话。

二、同步:只要明白了为什么要同步,那多线程就没什么难的了。换个角度,把共享数据作成线程安全的后,也就没有了线程难控的一些问题。搜索Monitor模式解决线程间共享数据一致性问题。

三、理解何时引发这种数据访问不一致,当然是共享的了(如:全局数据)。说点低级的:不是只要共享对象就要加锁,还要看对象是否有状态,无状态对象只是操作的集合而已。尽量使用堆栈,这会简化线程问题,因为线程切换时自动保存函数活堆栈。

四、大致听过几个锁:自旋锁——它适合短时间操作加锁,又称闪锁,利用硬件机制的加锁,它所带来的好处是开销低,还有内存屏蔽(百度一下,我也懒得查了)。而Mutex等内核对象锁,涉及系统资源的分配以及执行时开销都很大。

五、看看ACE的线程库:并发和同步策略。

好了,好累~~~~~~~~~~~~

一、 线程模型

用户级线程模型(N:1)

系统级线程模型(1:)

混合线程模型(M:N)

二、何时使用多线程

三、线程同步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: