Rumah >pembangunan bahagian belakang >C++ >Amalan terbaik untuk pengaturcaraan berbilang benang dalam C++
Pengaturcaraan berbilang benang Fahami konsep multi-benang, gunakan perpustakaan std::thread untuk mencipta dan mengurus benang, dan mencapai penyegerakan dan komunikasi melalui kunci mutex, pembolehubah keadaan dan operasi atom. Kes praktikal: Gunakan berbilang benang untuk pengkomputeran selari, peruntukkan tugas kepada berbilang benang dan kumpulkan hasil untuk meningkatkan kecekapan.
Pengaturcaraan Berbilang Benang ialah paradigma pengaturcaraan serentak yang membolehkan berbilang tugasan dilakukan pada masa yang sama. Dalam C++, multithreading boleh dilaksanakan dengan mudah menggunakan pustaka std::thread
. std::thread
库来轻松实现多线程。
要创建线程,可以使用 std::thread
std::thread
dan lulus objek boleh panggil sebagai parameter: #include <thread> void print_hello() { std::cout << "Hello from a thread!" << std::endl; } int main() { std::thread t(print_hello); t.join(); // 等待线程完成执行 return 0; }Penyegerakan dan komunikasi
#include <thread> #include <vector> std::vector<int> numbers; // 输入数组 void calculate_sum(int start, int end, int& sum) { for (int i = start; i < end; i++) { sum += numbers[i]; } } int main() { // 将输入数组分成多个部分 std::vector<int> parts; int part_size = numbers.size() / 4; for (int i = 0; i < 4; i++) { parts.push_back(i * part_size); } parts.push_back(numbers.size()); // 创建线程并分配每个部分的任务 std::vector<std::thread> threads; std::vector<int> sums(4); for (int i = 0; i < 4; i++) { threads.push_back(std::thread(calculate_sum, parts[i], parts[i + 1], std::ref(sums[i]))); } // 等待所有线程完成并累加结果 for (auto& t : threads) { t.join(); } int total_sum = accumulate(sums.begin(), sums.end(), 0); std::cout << "Total sum: " << total_sum << std::endl; return 0; }🎜Dengan melakukan pengiraan selari pada berbilang benang, program ini boleh meningkatkan kecekapan pengkomputeran dengan ketara. 🎜
Atas ialah kandungan terperinci Amalan terbaik untuk pengaturcaraan berbilang benang dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!