2 jujiawu1024 jujiawu1024 于 2016.04.20 16:54 提问

C++有关复杂多线程计算的暂停和恢复
c++

C++采用多线程的方法来对数组排序,怎么才能让计算可以暂停以及恢复,是需要写文件么?还有没有别的办法?

4个回答

caozhy
caozhy   Ds   Rxr 2016.04.21 06:04
已采纳
NK_test
NK_test   Rxr 2016.04.21 00:09

分段计算,使用barrier系列函数等待其他线程结束。
最后归并求出排序好的数组。前些天我刚好实现了一个linux下的多线程排序,附带讲解,链接不好贴,直接去我博客最近十篇博客之内找一下吧~

webcqsec
webcqsec   2016.04.20 17:12

使用 事件、信号量等同步方式即可。

oyljerry
oyljerry   Ds   Rxr 2016.04.20 17:15

可以用event等事件来做等待,C++11中可以使用mutex

jujiawu1024
jujiawu1024 C++ 6.0怎么用?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JAVA多线程机制之暂停、恢复和停止
在JDK1.2以前的版本如果要实现线程的暂停、恢复和停止的方法分别是suspend()、resume()、stop()。但是从JDK1.2以后这些方法已经被遗弃,因为它们有可能造成严重的系统错误和异常。 首先suspend()方法不会释放线程所占用的资源。如果使用该方法将某个线程挂起,则可能会使其他等待资源的线程死锁。而resume()方法本身并无问题,但是不能独立于suspend()方法存在。
C++多线程编程经验——线程暂停、恢复
多线程中,线程需要暂停的原因多种多样,基本分为两大类,1是等待数据,2是系统资源紧张,停止计算以把资源让给其他线程.一般初学者会使用的方法就是使用SuspendThread和ResumeThread这两个API或者他们的包装函数进行操作,许多教材上都是这么说的,但这么作会带来及其严重的问题。 这两个API的问题是无法确定函数被暂停的位置,这是一个足以让任何多线程程序崩溃的问题。想象一种情况,A线
android 线程暂停/恢复/退出demo
线程开启,暂停,恢复,退出操作简易实现demo
Java多线程的暂停与恢复
暂停线程意味着此线程还可以恢复运行。在Java多线程中,可以使用suspend()方法暂停线程,使用resume()方法恢复线程的执行。 在使用suspend与resume方法时,如果使用不当,很容易造成公共的同步对象独占,使得其它的线程无法访问公共同步对象。这两个方法已经过时了,容易造成死锁。 因为println()方法也是同步的,如果当程序运行到println()方法内部停止的时候,同步
iOS开发—线程的模拟暂停和继续操作
表示图开启线程下载远程的网络界面,滚动页面时势必会有影响,降低用户的体验。针对这种情况,当用户滚动屏幕的时候,暂停队列;用户停止滚动的时候,继续恢复队列。接下来通过一个案例,演示如何暂停和继续操作,具体内容如下: (1)新建一个SingleViewApplication工程,命名为“13-SuspendAndContinue”; (2)进入Main.StoryBoard,从对象库中拖拽3个Bu
JAVA100例之实例66 实现对线程的控制,中断、挂起、恢复、停止
JAVA100例之实例66 实现对线程的控制,中断、挂起、恢复、停止
Java多线程编程-停止线程 暂停线程
一 停止线程停止线程是在多线程开发中很重要的技术点,个人总结停止线程有下面三种方法 *
java线程停止、暂停和恢复等状态的控制
JDK1.0定义了stop和suspend方法,stop用来直接终止线程,suspend会阻塞线程直到另一个线程调用resume. stop和suspend都有一些共同的点:都试图专横的控制一个给定了的线程的行为。 从JDK1.2开始,这两个方法都被弃用了.stop天生就不安全,而经验告诉我们呢suspend方法会经常导致死锁。 网上有很多关于Java线程停止、暂停的文章,经过自己测试,
控制多线程,开启、暂停、继续、终止(实例)
控制多线程,开启、暂停、继续、终止(实例)   我们这些文盲以前一听到多线程这么几个字,以为非常的高级,难搞!!昨天翻阅了一下MSDN,发现,其实也没那么难,关键在于全面的理解,也许是用多了API了,慢慢的会看懂了一些!!!                                       我总结了几个易于理解的出来,一起共享!        我们先不讲如何使用线程过程中的参
JAVA 多线程解决复杂度较高的算法问题
//再求基于GOTerm的基因相似度算法的时候 使用JAVA多线程开启20个线程 package com.txt; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFou