Untitled
unknown
c_cpp
9 months ago
3.7 kB
7
Indexable
1 code"
#include <iostream>
#include <thread>
#include <vector>
#include <numeric>
#include <sched.h>
using namespace std;
constexpr int ARRAY_SIZE = 1000000;
void additionOperation(const vector<int>& array) {
int core = sched_getcpu();
cout << "Addition operation is running on core: " << core << endl;
long long sum = accumulate(array.begin(), array.end(), 0LL);
cout << "Sum of the array elements: " << sum << endl;
}
void multiplicationOperation(const vector<int>& array) {
int core = sched_getcpu();
cout << "Multiplication operation is running on core: " << core << endl;
long long product = 1LL;
for (int num : array) {
product *= num;
}
cout << "Product of the array elements: " << product << endl;
}
int main() {
vector<int> array(ARRAY_SIZE, 1);
thread additionThread(additionOperation, ref(array));
thread multiplicationThread(multiplicationOperation, ref(array));
additionThread.join();
multiplicationThread.join();
return 0;
}
i will give you 6 codes , then you have to make world document in proper lab report format as writing code name , code , then output , give me link to download that world file , here are the codes :
2 code :
#include <iostream>
#include <thread>
void addSeven(long x, long* result) {
*result = x + 7;
}
void addTwoNumbers(long x, long y, long* sum) {
*sum = x + y;
}
void addThreeNumbers(long x, long y, long z, long* sum) {
*sum = x + y + z;
}
int main() {
long a = 10;
long b = 15, c = 20;
long x = 2, y = 5, z = 30;
long result1, result2, result3;
std::thread th1(addSeven, a, &result1);
std::thread th2(addTwoNumbers, b, c, &result2);
std::thread th3(addThreeNumbers, x, y, z, &result3);
th1.join();
th2.join();
th3.join();
std::cout << result1 << " " << result2 << " " << result3 << "\n";
return 0;
}
3 code :
#include <iostream>
#include <thread>
int main() {
std::cout << std:: thread::hardware_concurrency() << "\n";
return 0;
}
4 code :
#include <iostream>
#include <thread>
void addSeven(long x, long* result) {
*result = x + 7;
}
void addTwoNumbers(long x, long y, long* sum) {
*sum = x + y;
}
void addThreeNumbers(long x, long y, long z, long* sum) {
*sum = x + y + z;
}
int main() {
long a = 10;
long b = 15, c = 20;
long x = 2, y = 5, z = 30;
long result1, result2, result3;
std::thread th1(addSeven, a, &result1);
std::thread th2(addTwoNumbers, b, c, &result2);
std::thread th3(addThreeNumbers, x, y, z, &result3);
th1.join();
th2.join();
th3.join();
std::cout << result1 << " " << result2 << " " << result3 << "\n";
return 0;
}
5 code :
#include <iostream>
#include <thread>
void printMessage(long i) {
std::cout << "I am thread " << i << "\n";
}
int main() {
long numThreads = 5;
std::thread allTh[numThreads];
for (long i = 0; i < numThreads; ++i) {
allTh[i] = std::thread(printMessage, i);
}
for (long i = 0; i < numThreads; ++i) {
allTh[i].join();
}
return 0;
}
6 code :
#include <iostream>
#include <thread>
void memoryRace(long* aR) {
*aR = 0;
for (long i = 0; i < 100000; ++i) {
*aR = *aR + 1;
}
}
int main() {
std::thread thArray[5];
long result = 0;
for (long i = 0; i < 5; ++i) {
thArray[i] = std::thread(memoryRace, &result);
}
for (long i = 0; i < 5; ++i) {
thArray[i].join();
}
std::cout << result << std::endl;
return 0;
}Editor is loading...
Leave a Comment