#include <pthread.h>
#include <iostream>
#include <vector>
#include <unistd.h>
#include <random>
using namespace std;
void RandomCase()
{
int len = 100000;
int *cond = new int[len];
for (int i = 0; i < len; ++i)
{
cond[i] = rand();
}
int sum = 0;
for (int i = 0; i < len; ++i)
{
if (cond[i] % 4)
{
sum++;
}
else
{
sum--;
}
}
}
void *ThreadFunc(void *data)
{
int *n = (int *)data;
RandomCase();
delete n;
return nullptr;
}
int main()
{
const int threadNum = 10000;
pthread_t threads[threadNum];
for (int i = 0; i < threadNum; i++)
{
int *array = new int(100);
if (pthread_create(&threads[i], NULL, ThreadFunc, array) != 0)
{
cerr << "failed to create thread:" << i << endl;
continue;
}
}
for (int i = 0; i < threadNum; i++)
{
void *retval;
pthread_join(threads[i], &retval);
}
return 0;
}