Linux系统开发专栏

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年3月2日

摘要: 多核基本意味着多线程,那么在多线程处理中有一个比较棘手的问题:当存在一些常驻的线程访问的共享数据时,退出时必须先结束这些常驻线程才能对共享资料进行释放操作。否则,先释放这些共享资源,后面的常驻线程访问这些已经释放了的共享数据时,导致程序异常。比如下面的情况: 分析上述例子可以发现,问题出在当释放掉链表后,访问链表的线程依然存在,怎样才能在释放链表前让其他对链表有操作的线程安全的退出呢?这就要求我们设计一定的算法而不能简单地使用线程退出函数来强制某个线程的退出,而是在算法中实现让线程自己主动地退出。 要将对链表这样供多个线程操作的线程在链表前安全地退出,首先要做到的就是让这些线程知道要... 阅读全文
posted @ 2012-03-02 20:15 ☆&寒 烟☆ 阅读(1183) 评论(2) 推荐(1) 编辑