C ++ WIN32:简短的多任务处理示例

时间:2010-04-20 20:59:13

标签: c++ windows multithreading

我搜索了有关如何创建一个类似于此的简单多线程应用程序的示例:

#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来使上述内容“随机”输出bmyConcurrentFunction

我的意思是:它的最小代码是什么?它真的只有一个我必须打电话的功能吗?我需要包含哪些文件?

我使用的是MSVC 2010,Win32

3 个答案:

答案 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)

顺便说一句,为什么要在你需要随机播放'a'和&amp; 'B'。

int randomSprinkling() {     char val [2] = {'a','b'};

int i = 0;
while( ++i < 100  ) 
{
    std::cout << val[rand()%2] << std::endl; 
} 
return 0;

}