0

Code Profiler ソフトウェアで何が起こっているのかをよく理解したい。そして、このために、私は心から知っているプログラムを作成し、その上でプロファイラーを使用したいと考えました.

プロファイリングがどのように機能するかを理解するのに役立つと考えていました。

そこで、スレッドの同時実行性を説明するプログラムを作成しようとしました...しかし、あまり良いものはないと思います。実際の並行性の問題の例のようにするのを手伝ってくれませんか?

私はインターネット上で良い例を見つけることができません!

#include <iostream>
#include <process.h>
#include <unistd.h>
#include <windows.h>
using namespace std;

int i = 0;
int j = 0;
int k = 0;
bool thread1Finished = false;
bool thread2Finished = false;

void thread1(void *param) {
    cout << "In Thread 1 Function" << endl;
    j = i;
    Sleep(1000); // Sleep for 1 second
    cout << "Thread 1 j is : " << j << endl;
    j++;
    cout << "Thread 1 j is : " << j << endl;
    cout << "Thread 1 Function Ends" << endl;
    thread1Finished = true;
    _endthread();
}

void thread2(void *param) {
    cout << "In Thread 2 Function" << endl;
    j = i;
    Sleep(200); // Sleep for 1 second
    cout << "Thread 2 j is : " << j << endl;
    j++;
    cout << "Thread 2 j is : " << j << endl;
    cout << "Thread 2 Function Ends" << endl;
    thread2Finished = true;
    _endthread();
}

int main() {
    cout << "Starting Thread 1" << endl;
    cout << _beginthread(thread1, 0, NULL);

    //while(!thread1Finished) {
    //    Sleep(10);
    //}

    cout << "\n" << endl;

    cout << "Starting Thread 2" << endl;
    cout << _beginthread(thread2, 0, NULL);

    while(!thread1Finished || !thread2Finished) {
        Sleep(10);
    }

    cout << "Main ends" << endl;
    return 0;
}
4

0 に答える 0