怎样将VC++编的单线程改为多线程?解决办法
怎样将VC++编的单线程改为多线程?
我以前没接触过多线程,最近看了一些关于多线程的文章,也不知道怎样入手将下面VC++编的单线程改为多线程,请各位老师指点,给个多线程框架或思路;
这个程序是先生成组合数,然后通过过滤器Filter0,Filter1过滤掉不需要的组合数,然后再打印出结果;谢谢!
#include <fstream.h>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;
typedef vector <int> IntArray;
// 回溯搜索生成组合
void Search(int m, int n, int depth, IntArray& L,
list <IntArray> & result)
{
............
}
// 生成从m个数中取出n个数的组合数C(m,n)
// 结果在result中返回
void Combination(int m, int n, list <IntArray> & result)
{
...........
}
// 打印组合数
void Print (list <IntArray> & combs)
{
...........
}
// 过滤组合数
void Filter0( list <IntArray> & combs)
{
............
}
// 过滤组合数
void Filter1( list <IntArray> & combs)
{
...............
}
}
int main()
{
int m, n;
Combination( m, n, result );
Filter0(result);
Filter1(result);
Print( result );
return 0;
}
------解决方案--------------------
由于结果具有前后依赖性,它们是线性关系,推荐用单线程。多线程用于守候或无明显线性关系的过程使用。
------解决方案--------------------
你的程序有必要这么做么?....写下网络应用程序吧..
------解决方案--------------------
有必要用多线程的时候才用,降低程序的复杂性和出错的概率。
我以前没接触过多线程,最近看了一些关于多线程的文章,也不知道怎样入手将下面VC++编的单线程改为多线程,请各位老师指点,给个多线程框架或思路;
这个程序是先生成组合数,然后通过过滤器Filter0,Filter1过滤掉不需要的组合数,然后再打印出结果;谢谢!
#include <fstream.h>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;
typedef vector <int> IntArray;
// 回溯搜索生成组合
void Search(int m, int n, int depth, IntArray& L,
list <IntArray> & result)
{
............
}
// 生成从m个数中取出n个数的组合数C(m,n)
// 结果在result中返回
void Combination(int m, int n, list <IntArray> & result)
{
...........
}
// 打印组合数
void Print (list <IntArray> & combs)
{
...........
}
// 过滤组合数
void Filter0( list <IntArray> & combs)
{
............
}
// 过滤组合数
void Filter1( list <IntArray> & combs)
{
...............
}
}
int main()
{
int m, n;
Combination( m, n, result );
Filter0(result);
Filter1(result);
Print( result );
return 0;
}
------解决方案--------------------
由于结果具有前后依赖性,它们是线性关系,推荐用单线程。多线程用于守候或无明显线性关系的过程使用。
------解决方案--------------------
你的程序有必要这么做么?....写下网络应用程序吧..
------解决方案--------------------
有必要用多线程的时候才用,降低程序的复杂性和出错的概率。