我搜索了有关如何创建一个类似于此的简单多线程应用程序的示例:
#include <iostream>
using namespace std;
int myConcurrentFunction( )
{
while( 1 )
{
cout << "b" << endl;
}
}
int main( )
{
// Start a new thread for myConcurrentFunction
while( 1 )
{
cout << "a" << endl;
}
}
a
来使上述内容“随机”输出b
和myConcurrentFunction
?我的意思是:它的最小代码是什么?它真的只有一个我必须打电话的功能吗?我需要包含哪些文件?
我使用的是MSVC 2010,Win32
答案 0 :(得分:3)
最简单的是_beginthread。只关注他们如何在他们的例子中创建线程,它并不像第一眼看上去那么复杂。
#include <iostream>
#include <process.h>
using namespace std;
void myConcurrentFunction(void *dummy)
{
while( 1 )
{
cout << "b" << endl;
}
}
int main( )
{
_beginthread(myConcurrentFunction, 0, NULL);
while( 1 )
{
cout << "a" << endl;
}
}
答案 1 :(得分:1)
比这更复杂。首先,线程函数必须返回DWORD,并获取LPVOID参数。
有关详细信息,请查看code from MSDN。
答案 2 :(得分:-2)
int randomSprinkling() { char val [2] = {'a','b'};
int i = 0;
while( ++i < 100 )
{
std::cout << val[rand()%2] << std::endl;
}
return 0;
}