Hızlı bir sorum var. Birden çok sensörden veri almak için küçük bir çok iş parçacıklı program oluşturmam gerekiyordu ve hem pthreads hem de qthreads hakkında bilgi sahibi oldum. Her iki kütüphaneye de erişimim var. Şahsen ben tasarımı ve çeşitli işlevleri nedeniyle Qt kullanmaya yönelik önyargılıyım. Fakat diğerini kullanmanın önemli bir avantajı var mı? TeşekkürQThreads Vs Pthreads
cevap
QThreads pthreads üzerine inşa edilmiştir. Nesneye göre çalışmayı kolaylaştırmak için Nesne Tabanlı bir soyutlama sağlarlar. QThreads'ın yanı sıra portatif olanlar, alttaki iplik sistemini kullanarak herhangi bir sistem üzerinde çalışabilirler, pthreads ise POSIX sistemlerine özgüdür.
qthreads kullanmanın neredeyse tek dezavantajı Qt karşı uygulama bağlamanız gerekir ki; Bu bağımlılık, uygulamanızı dağıtmayı biraz daha zorlaştırabilir.
Ben şeylerin özünde düşünüyorum linux altında QThread
pthread
kullanır. Pencerenin kapağının altında ne olduğundan emin değilim. İhtiyacınız olan bazı pthread
API işlevleri olmadıkça, QThread
ile birlikte kullanılamaz, sadece size sağlayacağı taşınabilirlikten faydalanmak için QThread
ile yapışırdım. Orada önemli bir performans farkı olmasını beklemezdim. Qthread
ayrıca sinyal/slot mekanizmasını iplik sınırlarında kullanmanıza izin verecektir.
Ama qthreads vinç yönetim bunun için olay döngü kullanmak bilmek var, yani sadece pthread olduğu gibi iplik öldüremem. İş parçacığı uzun ve sıkı çalışırsa, serbest bırakılmasa da durdurmak mümkün olmaz. Bazı durumlarda önemli.
- 1. NSThread VS pthreads
- 2. Bir koşul değişkeninin işaretlenmesi (pthreads)
- 3. Pthreads ile Konuları Killing - C
- 4. pthreads içindeki koşucunun tanımlanmamış referansı
- 5. Pthreads PHP uzantısı Ubuntu'da nasıl kullanılır?
- 6. pthreads kullanırken arka plan konuları (güzel, öncelikli)
- 7. Pthreads ile ilgili başka bir problemin tartışılmasıyla,
- 8. QThread: iplik hala Python qthreads ile sorun yaşıyorum
- 9. libspe vs libspe2? Fark ne?
- 10. pthreads: okuyucu/yazıcı kilitleri, okuma kilidini okuma kilidini yükseltme
- 11. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 12. & vs * ve | VS +
- 13. SpiderMonkey vs JavaScriptCore vs?
- 14. VS
- 15. VS
- 16. IDataErrorInfo vs ValidationRule vs Exception
- 17. cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize
- 18. visualvm vs JProbe vs JProfiler
- 19. _mm_load_ps vs. _mm_load_pd vs. etc
- 20. pycuda vs theano vs pylearn2
- 21. is_numeric() vs is_float() vs is_int()
- 22. TextColor vs TextColorPrimary vs TextColorSecondary
- 23. GridView vs DataList vs için Repeater vs ListView 'in performansı
- 24. Qt: UI ile vs vs ile xml vs ile qml
- 25. Barındırma PowerShell: PowerShell vs. Runspace vs. RunspacePool vs. Pipeline
- 26. Python vs Jython vs IronPython vs wxPython arasındaki fark nedir?
- 27. Oyun geliştirmeye nereden başlayacaksınız? UIKit vs Core Animation vs QuartzCore vs OpenGL vs Cocos2D
- 28. XAML vs WPF vs Store App vs Phone App vs UWA
- 29. RhinoMock: Mocks Vs StrictMocks Vs DynamicMocks
- 30. Resim vs Fotoğraf vs. Görüntü - Adlandırma modelleri
Ya .. Sadece ona bakıyordum ve nasıl yapıldığı gibi içeriden görünüyor. Teşekkürler peoro. Ben özellikle tryLock() pthread_mutex_trylock kullanarak uygulanmış olup olmadığını arıyordum. Bence öyle. – blueskin
tek dağıtım sorunu, qt kitaplıklarına dinamik olarak bağlandığınızda LGPL lisansınızı kodunuzla birlikte eklemeniz gerektiğidir (bu, açık kaynaklı ve ticari olmayan kaynak sürümünü kullandığınızı varsayar). Pencerelerde, dağıtmak için hangi DLL'lere ihtiyacınız olduğuna emin değilseniz, 'depends.exe'yi kullanın ve tam olarak size söyleyecektir! http://www.dependencywalker.com/ – g19fanatic