Aşağıdaki kod örneği, her seferinde 1 iş parçacığının etkin bir şekilde çalışmasına izin verir. Konulara referanslar tutmak ve daha sonra 'Thread.join' çağırmak daha sonra aynı etkiye sahiptir. Bu iş parçacığı, iş parçacığının bağımsız olarak ve paralel olarak devam etmesini bekleyen programla nasıl çalışacak ve sonra çıkacak? Diğer bazı Kernel nesne sinyalizasyon mekanizmalarının kullanılması gerektiği anlaşılıyor. 'Programdan çıkmadan önce birden çok iş parçacığının tamamlanmasını beklemenin doğru yolu C++ 11
int main() {
while (cin) {
getline(cin, input_line);
if (input_line.length()>0)
{
thread t = thread(SomeLengthyCheck, input_line);
t.join();
}
}
}
" 'katılmak' diğer iş parçacığı aynı anda çalışmasına izin vermeyen bir ikincil iş parçacığı ana iş parçacığı kravat kullanarak o11c @ önerdiği ?" - bu varsayım yanlıştır. Sadece bir saniye uyumak için birden fazla iş parçacığı başlat. Ardından, tüm bu konulara katılın ve genel programın ne kadar sürdüğünü izleyin. –
@Ulrich Yukarıdaki kod parçamdan bahsediyordum, çünkü while döngüsündeki 'thread.join' çağrısının etkisi diğer thread'ları bile başlatmıyordu .. Tüm threadlar oluşturulduktan sonra bir birleşim kullanmak diğer thread'lara izin verirdi tamamlanana kadar devam edin (aşağıda açıklandığı gibi). Ayrıca, ana iş parçacığı çıktıktan sonra bile iş parçacığının devam etmesi gerektiğini belirten spekülasyonları anlıyorum, ancak bu yaklaşımla ilgili rahat değilim ... – Gio