Kaedah untuk melaksanakan berbilang benang dalam pustaka standard C++: sertakan fail pengepala: #include <thread> buat objek thread: std::thread t(function_or_lambda) start thread: t.start() tunggu sehingga thread selesai: t .join()
Multi-threading merujuk kepada melaksanakan berbilang tugasan yang berbeza pada masa yang sama dalam program Ini adalah konsep yang sangat penting untuk meningkatkan keselarasan dan tindak balas program kelajuan. Pustaka standard C++ menyediakan beberapa kelas dan fungsi yang menjadikan multithreading mudah.
Begini caranya untuk melaksanakan multithreading menggunakan perpustakaan standard C++:
Sertakan fail pengepala:
#include <thread>
Buat objek utas:
:std::thread
类来创建线程对象,并指定要执行的函数或可调用对象。
std::thread t(function_or_lambda);
启动线程:
使用 std::thread::start()
方法来启动线程。此方法将开始一个新的线程,并执行指定的函数或可调用对象。
t.start();
等待线程完成:
使用 std::thread::join()
>kekodkan:<>untuk membaca kelas mencipta objek Thread dan menentukan fungsi atau objek boleh dipanggil untuk dilaksanakan.
t.join();
Gunakan kaedah std::thread::start()
untuk memulakan utas. Kaedah ini akan memulakan utas baharu dan melaksanakan fungsi yang ditentukan atau objek boleh dipanggil.
#include <thread> #includeusing namespace std; vector numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int num_threads = 4; int sum(const vector & arr, int start, int end) { int sum = 0; for (int i = start; i < end; i++) { sum += arr[i]; } return sum; } int main() { // 创建线程数组 vector threads(num_threads); // 计算每个线程负责的范围 int chunk_size = numbers.size() / num_threads; vector partial_sums(num_threads); for (int i = 0; i < num_threads; i++) { int start = i * chunk_size; int end = min((i + 1) * chunk_size, numbers.size()); // 创建线程并计算部分和 threads[i] = thread(sum, ref(numbers), start, end); } // 等待所有线程完成 for (int i = 0; i < num_threads; i++) { threads[i].join(); } // 计算总体和 int total_sum = 0; for (int partial_sum : partial_sums) { total_sum += partial_sum; } cout << "Total sum: " << total_sum << endl; return 0; }
std::thread::join()
untuk menunggu urutan menyelesaikan tugasnya. 🎜rrreee🎜🎜🎜Kes praktikal: 🎜🎜🎜Kira hasil tambah berbilang nombor: 🎜🎜🎜Gunakan multi-benang untuk mengira jumlah set nombor. Pisahkan tatasusunan kepada subarray dan cipta berbilang benang untuk mengira jumlah setiap subarray secara serentak. Akhir sekali, jumlah subarray yang dikira oleh setiap utas ditambah untuk mendapatkan jumlahnya. 🎜rreeeeAtas ialah kandungan terperinci Bagaimana untuk melaksanakan multithreading menggunakan perpustakaan standard C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!