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

 
Реter Konow :

Şimdi, eğer çoklu kullanım eklerlerse, gerçekten senin için daha da kötüleşecek mi? Ve böylece MQL'ye bir sürü şey eklediler ve bu gerçekten faydalı bir şey. Ancak yalnızca MQL'de çok karmaşık, hantal programlar yazan bir kişi onun yararını anlayabilir. Çok iş parçacığının neden gerekli olduğunu anlamıyorsanız, bu tür programlar yazmazsınız. Yazarsan anlarsın. Her şey basit. ))

Özellikle test cihazında, özellikle çoklu araç modunda, çoklu iş parçacığına kesinlikle ihtiyaç vardır. Çoğu zaman üretkenlikten yoksunum. Ancak programlama alanında uzman değilim ve incelikleri gerçekten anlamıyorum, sadece birçok şeyi paralel olarak saymam gerektiğini biliyorum). Ve test cihazını paralel hale getirmek son derece faydalı olacaktır.
 
Реter Konow :

Şimdi, eğer çoklu kullanım eklerlerse, gerçekten senin için daha da kötüleşecek mi?

kesinlikle hayır - daha iyi olacak! - AMA burada kilit konu destek - nasıl kullanılacağını kim açıklayacak? Hataları kim düzeltecek? - garantili anlaşılır işlevselliği kim sağlayacak?

Geliştiricilerin MT'yi nasıl ve kime kullanacakları ana fikrine göre, C ++'a karşılık gelen işlevselliği sağlarlar, böylece kendilerini öğrenmenin "baş ağrısından" kurtarırlar ve nasıl çalıştığını açıklarlar - C ++ ile ilgili çevrimiçi literatür ve 20 yılda internette giriş seviyesi program yazma örnekleri çok oldu

C++'a uygulanabilecek hazır bir paket (TS sorunu için) gördünüz mü?

 
Igor Makanu :

"uzmanlar"? - sizinle konuşacak bir şey yok, IMHO'nuzu itin ... bu kaynakta çeşitli alanlarda Profesyoneller ile büyük bir MQL topluluğu var, ne yazık ki, bilginizin hiçbirini topluluk için yararlı göstermediniz, tekrar yapabilirsiniz istediğin her şey için beni suçla-" Sen bir uzmansın!"


geliştiriciler yapacak mı? - ne ve neden? Tanınmış bir kullanıcı değil, KENDİNİZE BİLE NEDEN İHTİYAÇ OLDUĞUNU açıklayamıyor musunuz? )))

MetaQoutes'un amacı nedir? - amaç, herhangi bir BT şirketi gibi, kâr etmektir! , ama nedenini bilmiyorum, MetaQoutes hizmetlerini tanıtmak konusunda çok ciddi, algoritmik ticareti yaygınlaştırmak, analitik materyal sağlamak, bir İnternet topluluğu oluşturmak için birçok çalışma yapıldı ... böyle bir hayır kurumu, genellikle bunlar BT devleridir

bu nedenle, şirket kaynaklarını gelecekte neyin kâr getireceğine harcıyor (bir gerçek değil) .... ama işte burada ... yavaş Python veya Java kavramını MQl'ye uyarlaması gereken bir kullanıcı ortaya çıktı ... .Komik değil misin? - Kaç yaşındasın? ))))


kesinlikle - Saygı duyuyorum, çoğu zaman sadece azim bu hayatta nişinizi bulmanıza yardımcı olur! Bu zor işte iyi şanslar!

Bu konu hakkında sizinle konuşulacak bir şey değil!
MetaQuotes için asenkron programlar yazabilmenin ne kadar etkili bir fayda sağlayacağını anlamak için yeterli mantığa bile sahip değilsiniz.
Ve asenkron programlar yazan uzmanları gerçekten çekecek.
Ve toplulukta, sorunları ve fikirleri tartışabileceğiniz ve kendi kendinizi dinlemeyebileceğiniz yeterli sayıda uzman var, ben bir uzmanım.
Ne yazık ki uzman olmak için teknolojiye ayak uydurmak gerekiyor ve hangi dillerde kullanıldığı önemli değil.
Size ne yazdıklarını, onların da C++ ile asenkron olarak yazdıklarını duymuyorsunuz bile ama muhtemelen bunu anlamıyorsunuz, kendinize asenkron görevler koymamışsınız.
Bir de şevkinizi biraz yumuşatalım, normal iletişim bile kuramıyorsunuz.

 
Roman :

Bu konu hakkında sizinle konuşulacak bir şey yok!

konuşma, ama hala cevap yok:


ticaret terminalinin neden buna ihtiyacı var sorusuna cevap verin.
 
Maxim Romanov :
Özellikle test cihazında, özellikle çoklu araç modunda, çoklu iş parçacığına kesinlikle ihtiyaç vardır. Çoğu zaman üretkenlikten yoksunum. Ancak programlama alanında uzman değilim ve incelikleri gerçekten anlamıyorum, sadece birçok şeyi paralel olarak saymam gerektiğini biliyorum). Ve test cihazını paralel hale getirmek son derece faydalı olacaktır.
Ve üç boyutlu bir görselleştirme geliştireceğim ve bunu hesaplamalar, arayüz olayları, harici olaylar (sunucu erişimi) ile tek bir iş parçacığına koymak uygun değil. DLL her zaman bir nedenden dolayı uygun değildir - programları özgürce dağıtamazsınız.
 
Igor Makanu :

kesinlikle hayır - daha iyi olacak! - AMA burada kilit konu destek - nasıl kullanılacağını kim açıklayacak? Hataları kim düzeltecek? - garantili anlaşılır işlevselliği kim sağlayacak?

...

Benim bakış açıma göre, bu en az sorun. Ana şey, insanların bu konu hakkında iletişim kuracak olmasıdır . Forumun yeni konulara ihtiyacı var. Öyle değil mi? Sadece daha iyi olacağı ortaya çıktı. Peki, kullanıcıların sorunları ve hataları varsa ne kritik olacak? Ve ne zaman olmadılar? )

 
Andrey Pogoreltsev :

İsteklerin eşzamansız olarak yürütülmesine ihtiyacınız var, ancak çok iş parçacığına bir örnek veriyorsunuz ... Bunu araştırmanız için ısrar ettim, ama asla anlamadınız.

Sorununuzun çözümünü burada sizin için anlattım: https://www.mql5.com/ru/forum/318593/page4#comment_12568119

Ama eminim konuyu incelememişsindir.

Bana göre asenkron bir sıra verilse yine de multithreading isteyeceksiniz... En azından OVERLAPPED ve olaylarla uğraşmaya başlayın, kodda WinAPI mi istiyorsunuz?)

Terminale çoklu iş parçacığı eklenirse, ışık hızından daha hızlı bir şekilde olası programcılardan ölecektir.

Programcılar, çerçevenin cehaletlerine uyacak şekilde değişmesini istemek yerine sorunlara çözüm arıyorlar.

Hayır hayır, yanılıyorsunuz, her şeye baktım, net bir şekilde anlayacağım.
Bu arada, en azından bir miktar doğru yön veren tek kişi sensin, teşekkür ederim, geri kalanından sadece bir sel var.
Sadece pek çoğu konunun özünü anlamıyor, bu yüzden sorularını cevaplamak zorunda kaldım. Konunun büyüdüğü yer burası.
Ve çoklu iş parçacığı veya eşzamansızlık hakkında, birkaç teknoloji var, pek çoğunun bir anlayışı yok.
Ve örneklerin internetten aceleyle alıntılanması gerekiyordu ve hatta en azından bir şekilde teknolojinin özünü açıklıyorlar.
Kimse diğer teknolojileri göstermeye ve nasıl çalıştıklarını açıklamaya zahmet etmedi, bir holivar.

 
Roman :

Hayır hayır, yanılıyorsunuz, her şeye baktım, net bir şekilde anlayacağım.
Bu arada, en azından bir miktar doğru yön veren tek kişi sensin, teşekkür ederim, geri kalanından sadece bir sel var.
Sadece pek çoğu konunun özünü anlamıyor, bu yüzden sorularını cevaplamak zorunda kaldım. Konunun büyüdüğü yer burası.
Ve çoklu iş parçacığı veya eşzamansızlık hakkında, birkaç teknoloji var, pek çoğunun bir anlayışı yok.
Ve örneklerin internetten aceleyle alıntılanması gerekiyordu ve hatta en azından bir şekilde teknolojinin özünü açıklıyorlar.
Kimse diğer teknolojileri göstermeye ve nasıl çalıştıklarını açıklamaya zahmet etmedi, bir holivar.

Çoklu iş parçacığı - bir görev birden çok iş parçacığında çalışır. Tek bir işlemci üzerinde çalışabilirler, aynı şekilde işlemci zaman kotası bittiğinde çoklu iş parçacığı ve aralarında geçiş olacaktır. Paylaşılan kaynaklara erişmek için senkronizasyon gerektir. Kilitlenme, yarış durumu, bellek sürümündeki hatalar ve diğer "sürprizlerle" doludur.

Asenkron - işlevlerin bloke olmadan yürütülmesi (yani, yöntem çıktıktan hemen sonra kontrol geri döner), genellikle diğer cihazlarda (ağ ekipmanı, depolama cihazları, çevresel cihazlar, vb.) Örneğin, yüksek performanslı çok kullanıcılı bir sunucu yazabilirsiniz. istemci bağlantılarını işlemek için yalnızca bir iş parçacığı ve bir durum makinesi kullanmak. Her şey bu sunucunun amacına bağlıdır.

Sizin durumunuzda, WinAPI kullanarak çok sayıda bağlantı oluşturmanız gerekiyor ve örneğin zamanlayıcı iş parçacığını tutmamak için bu bağlantıların durumunu WaitForMultipleObjects aracılığıyla bir zaman aşımı ile kontrol edebilirsiniz.

not. Teorik olarak IOCompletionPort'u kullanabilirsiniz, ancak daha fazla bilgi ve net tasarım gerektirir.
 
Andrey Pogoreltsev :

Çoklu iş parçacığı - bir görev birden çok iş parçacığında çalışır. Tek bir işlemci üzerinde çalışabilirler, aynı şekilde işlemci zaman kotası bittiğinde çoklu iş parçacığı ve aralarında geçiş olacaktır. Paylaşılan kaynaklara erişmek için senkronizasyon gerektir. Kilitlenme, yarış durumu, bellek sürümündeki hatalar ve diğer "sürprizlerle" doludur.

Gerçekten o kadar tehlikeli mi? Belleği boşaltmada hatalar... Ancak, farklı çizelgelerde başlatılan Expert Advisor'lar farklı iş parçacıklarında çalışıyor ve beklenmeyen bir arıza yok gibi görünüyor. Yani, danışmanlar arasında dağıtılan görevler kritik hatalar gerektirmez, ancak bir danışman içinde iş parçacıkları arasında dağıtılan görevler olur mu? Tabii ki, bu konularda uzman değilim, ancak danışmanlar arasında görev dağılımı yöntemini tek bir danışmana aktarmanın sorunu nedir? Belki bir sorun vardır, tartışmıyorum.

 
Andrey Pogoreltsev :

Çoklu iş parçacığı - bir görev birden çok iş parçacığında çalışır. Tek bir işlemci üzerinde çalışabilirler, aynı şekilde işlemci zaman kotası bittiğinde çoklu iş parçacığı ve aralarında geçiş olacaktır. Paylaşılan kaynaklara erişmek için senkronizasyon gerektir. Kilitlenme, yarış durumu, bellek sürümündeki hatalar ve diğer "sürprizlerle" doludur.

Asenkron - işlevlerin bloke olmadan yürütülmesi (yani, yöntem çıktıktan hemen sonra kontrol geri döner), genellikle diğer cihazlarda (ağ ekipmanı, depolama cihazları, çevresel cihazlar, vb.) Örneğin, yüksek performanslı çok kullanıcılı bir sunucu yazabilirsiniz. istemci bağlantılarını işlemek için yalnızca bir iş parçacığı ve bir durum makinesi kullanmak. Her şey bu sunucunun amacına bağlıdır.

Sizin durumunuzda, WinAPI kullanarak çok sayıda bağlantı oluşturmanız gerekiyor ve örneğin zamanlayıcı iş parçacığını tutmamak için bu bağlantıların durumunu WaitForMultipleObjects aracılığıyla bir zaman aşımı ile kontrol edebilirsiniz.

not. Teorik olarak IOCompletionPort'u kullanabilirsiniz, ancak daha fazla bilgi ve net tasarım gerektirir.

İşte, bu bir konuşma, asyncio kullanarak engellemesiz yürütme yaptım, ancak buraya coroutine veya callback kelimesini yazarsanız, o zaman böyle bir anlayış başlayacak, sessiz kalmak daha iyidir))
Engellemeyen çağrıların ilkesi benim için biliniyor, ancak yalnızca python'da ve bir tane daha C ve C ++ kitaplığı
Henüz WinAPI ile çalışmadım, bu yüzden çalışacağım, başka bir kütüphaneye fazla bakmadım, ama fark yok, asıl şey sözdizimini anlamak ve sonra ne olduğunu anlıyorum ))
Ancak bu arada, konuşma sırasında, kutudan asenkron kod yazabilmek için normal mql'ye benzer işlevsellik eklemeyi önerdi.
Ve sonra yanlış anlamalar başladı ve neden ve neden. evet patamuşta))

Neden: