开发多线程的程序应该注意哪些问题
2017-07-24
展开全部
线程本不应该是直接暴露给代码的调度器,只有操作系统和纯执行层面上才不关心线程中执行代码之间的相关性,而代码内部往往具有访问共享数据数据一致性的需求。
而在程序内部使用线程就是为了并行的同时使用同一个地址空间,使得共享资源更加轻便化,如果说这个不能共享那个不能共享,那线程也就是鸡肋了。自dijkstra的论文提出了基本的互斥手段来隔离竞争,从资源操作原语上给出了完整的解决方案以来,有关非阻塞同步方面的研究被大大推后了。
所以目前比较好的方式是在线程上面构造更加易用的调度设施,比如windows的事件队列,或者使用某种同步数据结构,满足不会死锁和保证数据一致性。最基本的思路就是保证竞争被局限在一个局部,以便保证执行过程的一致性和避免死锁的发生。
而在程序内部使用线程就是为了并行的同时使用同一个地址空间,使得共享资源更加轻便化,如果说这个不能共享那个不能共享,那线程也就是鸡肋了。自dijkstra的论文提出了基本的互斥手段来隔离竞争,从资源操作原语上给出了完整的解决方案以来,有关非阻塞同步方面的研究被大大推后了。
所以目前比较好的方式是在线程上面构造更加易用的调度设施,比如windows的事件队列,或者使用某种同步数据结构,满足不会死锁和保证数据一致性。最基本的思路就是保证竞争被局限在一个局部,以便保证执行过程的一致性和避免死锁的发生。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询