多线程编程的一点讨论

    本来列下如下题目甚至更多,没有时间去整理。

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

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

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

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

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

  好了,好累~~~~~~~~~~~~
   
一、 线程模型
  • 用户级线程模型(N:1)
  • 系统级线程模型(1:)
  • 混合线程模型(M:N)
二、何时使用多线程

三、线程同步
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值