由于最近在学习C++从底层(指针,对象模型,内存管理)再到网络socket编程,多线程编程,数据库编程等方面知识,需要从Java慢慢的迁移过来。这是以前学习Java的学习路线,所以就把原来Java的做的项目全部用C++重新实现一遍。
1. 多线程基础
这个可以看我的博客,里面都有详细的介绍以及如何使用linux C++多线程编程,参考如下:
因为这个比较简单,只用到了一些线程的知识,没有用到其他同步互斥的知识,所以上面这一篇已经足够。
2. 快速排序,归并算法基础
里面我是自己实现快速排序的,如果不懂的话可以上网找一下。
3. 多线程排序问题
在实际的工作中,往往会遇到这样的问题,有1T的数据,问你怎么排序,或者说,怎么分成100个数组,每一个数组都是有序的。这是由就需要多线程来排序,每一个线程拥有自己所需的数组区域,每一个区域互不干扰,排序完成之后在归并
4. 多线程排序的思路

其实思路挺简单的,先把他们分块,然后对每一块进行一次快排,之后对所有的块合并。

本文介绍了将大型数据集通过多线程在Linux环境下进行排序的方法。首先回顾了多线程基础,参考了作者的另一篇博客‘Linux C++ 多线程编程基础(汇总)’。接着,讲解了快速排序和归并算法的基本概念。然后,针对实际问题,如1T数据的排序,提出了使用多线程对数据分块排序,最后进行归并的策略。给出了多线程排序的简单思路,即数据分块、独立排序和合并有序块。
最低0.47元/天 解锁文章
1228

被折叠的 条评论
为什么被折叠?



