MQL'de asenkron ve çok iş parçacıklı programlama - sayfa 33

 
Roman :

Her şeyi seviyorum)) anlamak için farklı yaklaşımlar ve sonra benim için daha anlaşılır olanı seç ve gereksinimleri karşıla, her şey basit.

Tüm dünya DLL ile çalışıyor, sadece onu en yüksek yeterlilik olarak gören bir grup mezhepçi ML'nin mucizeleriyle çalışıyor.
 
Yuriy Asaulenko :
Tüm dünya DLL ile çalışıyor, sadece onu en yüksek yeterlilik olarak gören bir grup mezhepçi ML'nin mucizeleriyle çalışıyor.

Gülümsedim ve buna katılmıyorum)))
Tamam, kılavuzları içmek ve edat seçeneklerini düşünmek için ayrıldı.
Gerçekten sel olmadan herkese teşekkürler, çeşitli çözümler önerdi.
Şimdi seçim yapabileceğiniz çok şey var.

 
Bana eski bir şakayı hatırlatıyor.
Uluslararası Tıp Kongresi. Rus heyetinin raporu - "Anüs yoluyla bademciklerin çıkarılması".
Okudum. Salondan ek sorular.
- Rus cerrahisinin beceri ve başarılarından memnunuz. Ama neden anüs yoluyla?
- Ve hepimiz yapıyoruz.
 
Vict :

Futures ve Async'in yalnızca C++ standardı olduğunu doğru anlıyor muyum?
C dilinde böyle bir kütüphane var mı?

 
Roman :

Futures ve Async'in yalnızca C++ standardı olduğunu doğru anlıyor muyum?
C dilinde böyle bir kütüphane var mı?

Doğru şekilde. C++ std ayrıca çoklu okuma desteğine sahiptir https://en.cppreference.com/w/c/thread

Not: ayrıca anthony williams'ın "c ++ eşzamanlılık eylemde" kitabını da inceleyebilirsiniz. Örneğin 9. bölümde iş parçacığı havuzu yazıyor.

Thread support library - cppreference.com
  • en.cppreference.com
If the macro constant is defined by the compiler, the header and all of the names listed here are not provided. Function names, type names, and enumeration constants that begin with either , , , or , and a...
 
Vict :

Doğru şekilde. C++ std ayrıca çoklu kullanım desteğine sahiptir https://en.cppreference.com/w/c/thread

Not: ayrıca anthony williams'ın "c ++ eşzamanlılık eylemde" kitabını da inceleyebilirsiniz. Örneğin 9. bölümde iş parçacığı havuzu yazıyor.

Sayfanın altındaki Ayrıca bakınız bağlantısını fark etmedim ))
Anladım, std:: thread C'de, ama std :: async değil ((
Şu anda bu kitabı okuyorum)) C++'da paralel programlama iş başında, Anthony Williams.
Ekteki kitapla ilgilenenler için async 4. bölümden başlıyor, okuması oldukça kolay.
Ve Kurt Gunteroth, C++ Programlarını Optimize Etme adlı kitabında, iş parçacığı oluşturmanın std::async kullanmaktan 14 kat daha pahalı olduğunu iddia ediyor.
Başlangıçta async teknolojisini kullanarak çalışmak istedim , ancak C/C++'da thread ile ilgili incelikleri bilmiyordum,
bu nedenle, dişler daha pahalıysa, her durumda kullanım için ortadan kalkarlar.
Ancak C'de std :: async'in ((


 
Roman :

Sayfanın altındaki Ayrıca bakınız bağlantısını fark etmedim ))
Anladım, std:: thread C'de, ama std :: async değil ((
Şu anda bu kitabı okuyorum)) C++'da paralel programlama iş başında, Anthony Williams.
Ekteki kitapla ilgilenenler için async 4. bölümden başlıyor, okuması oldukça kolay.
Ve Kurt Gunteroth, C++ Programlarını Optimize Etme adlı kitabında, iş parçacığı oluşturmanın std::async kullanmaktan 14 kat daha pahalı olduğunu iddia ediyor.
Başlangıçta async teknolojisini kullanarak çalışmak istedim , ancak C/C++'da thread ile ilgili incelikleri bilmiyordum,
bu nedenle, dişler daha pahalıysa, her durumda kullanım için ortadan kalkarlar.
Ancak C'de std :: async'in ((

thread daha pahalı değildir, sadece her şeyi şekillendirebileceğiniz daha düşük seviyeli bir araçtır. "Pahalı konular" üzerindeki en basit iş parçacığı havuzunuz - bir saatlik yazma (veya hazır bir tane alın).

thread oluşturmak std::async kullanmaktan 14 kat daha pahalıdır.

Belki zaman uyumsuz içinde bir iş parçacığı havuzu varsa, ancak bu her zaman böyle değildir https://stackoverflow.com/questions/15666443/what-stdasync-implementations-use-thread-pools .

Sonuç olarak - zaman uyumsuz çok siyah, kontrolsüz bir kutu. Kendi havuzunuzu yazmanızı istemiyorum, eğer async ile rahatsanız, o zaman harika.

Not: c++17'den async'i kesmek istediklerine dair söylentiler vardı.
Which std::async implementations use thread pools?
Which std::async implementations use thread pools?
  • 2013.03.27
  • KnowItAllWannabeKnowItAllWannabe 5,31455 gold badges3434 silver badges7676 bronze badges
  • stackoverflow.com
One of the advantages of using instead of manually creating objects is supposed to be that can use thread pools under the covers to avoid oversubscription problems. But which...
 

async kolayca eşzamanlı olarak yürütülebilir, orada karşılık gelen bir bayrak vardır. Ve artılar üzerindeki iplik havuzu bence karmaşık bir konu ve çok acil bir ihtiyaç durumunda yazmak mantıklı. O zaman o iplik havuzuna keskin bir şekilde bakmak daha iyidir.

Ayrıca "Scott Meyers. Efficient and Modern C++"ı da tavsiye ederim. 2016, bir gişe rekorları kıran gibi okunması kolay. Ekli arşiv aşağıdadır. Akışlar hakkında ilginç bir bölümü var. Ve genel olarak, Myers'ın okunması gerekiyor, çünkü gerekli)))

 
Andrei Novichkov :

Ve artılar üzerindeki iplik havuzu bence karmaşık bir konu ve çok acil bir ihtiyaç durumunda yazmak mantıklı.

Pekâlâ, fazla karmaşıklaştırma. Kendiniz yazmak istemiyorsanız, bitmiş olanı almak kolaydır, işte hızlı bir arama https://github.com/vit-vit/ctpl . Ve bu, async'in (çok sık eleştirilen) aksine, az çok tahmin edilebilir bir şeydir.

vit-vit/CTPL
vit-vit/CTPL
  • vit-vit
  • github.com
More specifically, there are some threads dedicated to the pool and a container of jobs. The jobs come to the pool dynamically. A job is fetched and deleted from the container when there is an idle thread. The job is then run on that thread. A thread pool is helpful when you want to minimize time of loading and destroying threads and when you...
 
Vict :

Pekâlâ, fazla karmaşıklaştırma. Kendiniz yazmak istemiyorsanız, bitmiş olanı almak kolaydır, işte hızlı bir arama https://github.com/vit-vit/ctpl . Ve bu, async'in (çok sık eleştirilen) aksine, az çok tahmin edilebilir bir şeydir.

Hayır, istemiyorum )))))) Ama üstünkörü bir arama da, mmmmm, dolu. Github'da bir sürü çöple karşılaştım. Ama burada merak ettiğim başka bir şey var, gerçekten bir iş parçacığı havuzu gerektirecek herhangi bir görev var mı? Sadece - bir iş parçacığı oluşturdum - unuttum ve Williams'ın nasıl tanımladığına göre havuzun bitmesini mi bekliyoruz? Orada bir örnek verilmiş, bir ATM gibi görünüyor, karıştırmıyorsam, ama ülkemizde böyle bir Yudo mucizesi hangi görevi haklı gösterebilir. Henüz böyle bir sorunla karşılaşamadım. Ve sonra neden her şeyin zaten yapıldığı ThreadPool'a gerçekten bakmıyorsunuz, belgeler var, örnekler var.

Neden: