C ++ Kitaplığı - <thread>
Giriş
İş parçacığı, aynı adres aralığını paylaşırken çok iş parçacıklı ortamlarda bu tür diğer dizilerle eşzamanlı olarak yürütülebilen bir talimatlar dizisidir.
Üye türleri
Sr.No. | Üye türü ve açıklaması |
---|---|
1 | İD Bu bir iş parçacığı kimliğidir. |
2 | Yerel tutamaç türü Yerel bir tutamaç türüdür. |
Üye fonksiyonları
Sr.No. | Üye işlevi ve açıklaması |
---|---|
1 | (kurucu) İplik oluşturmak için kullanılır. |
2 | (yıkıcı) İpliği yok etmek için kullanılır. |
3 | operatör = Bu bir hareket atama iş parçacığıdır. |
4 | get_id Konu kimliğini almak için kullanılır. |
5 | katılabilir Birleştirilebilir olup olmadığını kontrol etmek için kullanılır. |
6 | katılmak İpliği birleştirmek için kullanılır. |
7 | ayırmak İpliği çıkarmak için kullanılır. |
8 | takas Konuları değiştirmek için kullanılır. |
9 | native_handle Yerel tutamaç elde etmek için kullanılır. |
10 | hardware_concurrency [statik] Donanım eşzamanlılığını tespit etmek için kullanılır. |
Üye olmayan aşırı yüklemeler
Sr.No. | Üye olmayan aşırı yükleme ve açıklama |
---|---|
1 | takas (iplik) Konuları değiştirmek için kullanılır. |
Misal
Aşağıdaki örnekte std :: thread.
#include <iostream>
#include <thread>
void foo() {
std::cout << " foo is executing concurrently...\n";
}
void bar(int x) {
std::cout << " bar is executing concurrently...\n";
}
int main() {
std::thread first (foo);
std::thread second (bar,0);
std::cout << "main, foo and bar now execute concurrently...\n";
first.join();
second.join();
std::cout << "foo and bar completed.\n";
return 0;
}
Çıktı şöyle olmalı -
main, foo and bar now execute concurrently...
bar is executing concurrently...
foo is executing concurrently...
foo and bar completed.