问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++ 多线程多进程问题

发布网友 发布时间:2022-04-26 18:41

我来回答

2个回答

热心网友 时间:2023-11-12 14:58

#include <iostream>
#include <windows.h>
#include <cmath>
#include <process.h>

using namespace std;

CRITICAL_SECTION cs;         // critical section for multiple threads sync.
volatile long counter = 0;  // counter for looping thru the number range.

bool isPrime(const long n); // prime number check function.
unsigned int __stdcall thread_primeCheck(void*); // prime number check thread.

int main(int argc, char const *argv[])
{
    HANDLE h_thread_1, h_thread_2;
    
    InitializeCriticalSection(&cs); // initial cs.
    // create threads
    h_thread_1 = (HANDLE)_beginthreadex(0, 0, &thread_primeCheck, (void*)0, 0, 0);
    h_thread_2 = (HANDLE)_beginthreadex(0, 0, &thread_primeCheck, (void*)0, 0, 0);
    
    // set the thread-sync signal.
    WaitForSingleObject(h_thread_1, INFINITE);
    WaitForSingleObject(h_thread_2, INFINITE);

    // wrapped-up, close handle & delete the cs.
    CloseHandle(h_thread_1);
    CloseHandle(h_thread_2);

    DeleteCriticalSection(&cs);

    return 0;
}

// function to check if a given number: n is a prime number
bool isPrime(const long n)
{
    for (long l = 2; l < (long)(sqrt((double)n) + 1.0); ++l)
        if (n % l == 0) return false;

    return true;
}

// thread function definition.
unsigned int __stdcall thread_primeCheck(void*)
{
    while (counter < 10000) {
        EnterCriticalSection(&cs); // enter cs here!, protection area.
        long num = counter ++;        
        if ( isPrime(num) ){
            prime_number ++;
            cout << " " << num << endl;
        }
        LeaveCriticalSection(&cs); // leave cs.
    }
}

运行:

2
3
5
...
9949
9967
9973
Total prime numbers : 1231

热心网友 时间:2023-11-12 14:58

代码
注释
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的网站,现在人们的压力越来越大,心里的事情,说出来要好点,大家... 三星手机在接收微信.信息.电话时手电闪亮怎样关闭手电 在我国现存珍稀动物中数量最少的是( )A.大熊猫B.扬子鳄C.白鳍豚D... 什么是混凝土框剪结构 索尼ps4看门狗怎么转化中文 sony智能手表sw4(sony智能手表2.7) 索尼黑卡4设置中文 魅蓝note怎么可以讲设置调到通知栏,除魅流量外本机自带的流量监控可不... 双肩电脑包有哪些品牌值得推荐? 什么电脑背包好什么牌子的电脑包性价比最高 C多线程参数传递问题 关于c++中多线程的问题 邮政卡在取款机转帐给平安银行要多久才到帐 C++多线程问题 我在邮政银行自动存取款机转账50000元,出夕转的,跨行转账多长时间能到账? C/C++多线程问题? 邮政储蓄银行自助取款机转账多长时间到账 在中国邮政用atm跨行转账要多久啊,我这24小时还没有到账 邮政储蓄银行 atm跨行转账到工商银行需要多长时间? Excel2013怎么设置打开密码? C语言读程序题,写程序题。给200!越快越好! c语言读程序的题? C语言程序阅读题 C 语言 程序阅读题 C语言:读程序题 C语言读程序题,高分跪求达人,在线等。程序如下: 一道c语言读程序题,求问为什么 C语言读程序填空题 简单的c语言读程序题 一道C语言读程序题 C语言多线程问题:如何让下面两段代码同时运行 就是播放生日歌的同时输出文字 VC++多线程问题 C# 关于多线程和CPU的问题 关于c/c++中多线程的使用 请问下自动取款机跨行转账要多久到帐 word插入怎么做 苹果手机指纹没有了怎么办呀 苹果6为什么设置不了指纹? 为什么iPhone6无法录入指纹? iPhone6为什么无法添加指纹?还有那个Touch ID和密码不在设置通用里面, 为什么iPhone6录不了指纹? 如何将录屏转换为gif 如何对STM8S的闪存存储器和数据EEPROM编程 stm8s的变量tiny和near有什么区别 stm8s207是什么集成电路? stm8s单片机,掉电存储 stm8s单片机nrst脚能作输出吗 如何使用STM8S单片机的多通道AD转换 关于STM8S awu的问题 如何使用STM8S微控制器中的AD转换