4 adet iplikten oluşan bir iş parçacığı havuzum var: t1, t2, t3 ve t4. Eşzamanlı olarak çalışıyorlar, fakat t3 ve t4'ten gelen girişler t2 çıkışına bağlı. İleti kuyruğunu nasıl uygulamalıyım? T2 tamamlandıktan sonra çıktı verilerini işlem için t3 ve t4'e gönderecek? Kilitleme mekanizmasını kullanarak ileti sırasını uygulamaya çalıştım, ancak kilitleme oldukça pahalı görünüyor. Dişler arasında veri ileten kilitsiz mekanizma var mı? Görsel stüdyo 2010'da boost :: thread kullanıyorum.C++ - Parçanayla ilgili veri iletimi
cevap
Boost'un kilitsiz bir kuyruğu vardır: http://www.boost.org/doc/libs/1_56_0/doc/html/lockfree.html.
Merhaba Tomo için benim t3 ve t4'ün her ikisi de çıktı verilerini t2'den almalıdır. Bu yüzden, kimin mesaj kuyruğundan veriyi kestireceğini merak ediyorum? T2 olması gerektiğinde, t3 veya t4'ün ilk önce mi tamamlanacağından emin değiliz? Yani t2 yeni veriyi ne zaman atarsa, dequeue de gerçekleştirecektir. – Bent
Evet, t2 çıktısını kuyruğa koymalıdır. T3 ve t4, sırada sırada bir şey olup olmadığını periyodik olarak kontrol etmelidir. T3 ve t4'ün yapacak başka şeyleri varsayarsak. Değilse (yani, tek işi t2'nin çıktısını beklemek ve işlemek için), kilitsiz kuyrukları unutun ve sadece bir kilitleme çözümüyle geçin. Eğer iplikler zaten beklemek gerekiyorsa, kilitleme maliyeti endişeniz olmamalıdır. – Tomo
tbb. concurrent_queue
, concurrent_bounded_queue
(bekleme için), pipeline
, flow::graph
dahil olmak üzere çok çeşitli paralel kavramları sağlar. İlk iki MS VS içinde ppl de mevcuttur 2010.
Merhaba Anton, cevap verdiğiniz için teşekkürler! Çünkü benim projem şu anda destek lib kullanıyor, bu yüzden daha fazla destek olacağım. Ama çözüm bulamamış olsam da TBB'ye bir göz atacağım. :)) – Bent
- 1. Köşeli ui yönlendirici URL'siz durumlar arasında veri iletimi
- 2. wso2 multipart/form veri sonrası isteklerinin ağ geçidi iletimi
- 3. Geçişte çok noktaya yayın iletimi
- 4. C# Task.ContinueWith ile ilgili sorunlar
- 5. C# bölümü ile ilgili sorunlar #
- 6. nasıl bir DataTable veri denormalized gelmiş ilgili veri kümesi
- 7. Dinamik Veri Değişimi (DDE) - Hala İlgili?
- 8. Firebase veri yapısı - Firefeed yapısıyla ilgili midir?
- 9. arama ve veritabanından ilgili bir veri eklemek
- 10. Veri kümesindeki satır sayısıyla ilgili sorun
- 11. C# Veri Açıklamalar
- 12. sqrtf undefined 'sqrtf' ile ilgili c
- 13. C# içindeki bir nesneye veri bağlama C#
- 14. RSA C büyük veri şifreleme C#
- 15. C ODBC Veri Kaynaklarını Listeleme C#
- 16. C# ekleriyle ilgili e-posta eklerini kaydetme C#
- 17. Action delegate C ile ilgili önemli bilgiler C#
- 18. C/C++ kodunun temizlenmesi, variadic makrolarla ilgili sorunları ortaya çıkarır
- 19. C# - çok küçük sayılarla ilgili sorun - çift veri türünde yeterli sayı yok
- 20. Android - Akıllı telefon ve bluetooth modülü arasında ses iletimi işlevi
- 21. Yuva iletimi bulunamadı "ssl", CakePHP kabuktan e-posta gönderme
- 22. Pycharm Uzak Python Tercüman SSH Ağ Geçidi üzerinden, X11 iletimi
- 23. Tüm kıvılcım boyunca kıvılcım iletimi ile bir kıvılcım işinin çalıştırılması
- 24. C# veri hizalamasını kontrol edin
- 25. Cebirsel veri türü eşdeğeri C
- 26. ithal C++ veri türleri ffi
- 27. Dize akışından veri sorma (C++)
- 28. C# sql veri tabanı express
- 29. C# veri hakkında soru Grid
- 30. C# kullanarak USB'den veri okuma
aşağıdaki bağlantıdan bilgi: http://stackoverflow.com/questions/20595760/c-communication-between-threads –