[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 381

 

Senkronizasyon da göreceli bir kavramdır. Neyi neyle senkronize etmek? Atomik erişim sağlamak için senkronizasyon? Kim sıraya girecek? Junko, belki kitaplığınızda, MSDN'den gelen kod alınırsa, normal olarak sıra oluşturulur, çünkü orada her şey doğru yapılır. Ve sen onun ne yaptığını anlamadan yaladın - maymun gözlüğü gibi. Ve belki, her zaman olduğu gibi, şaka yaptılar. Çünkü anlamıyorsun. Atomik erişim ve kuyruk sağlamak için senkronizasyonu karıştırıyorsunuz.

 
Sepulca :
Bir sürü işlemci çekirdeği aldım. Ve şimdi sırada kimin için olduğunu bulamayacağız)))))))))

Hayır, bu tek çekirdekli işlemciler için de geçerlidir, çoklu görev işletim sisteminin bir işlevidir.
 
Chiripaha :

PauseBar'daki artışı kontrol ettim ve sadece bu çubukları 1 ve 5 dakikada aldım. Ama onların etrafından nasıl dolaşacağımı bulamıyorum. Değerin muhtemelen (ama açıkça değil) yazılması gerektiğini anlıyorum.

içinde

önceki çubukların değeri şuna benzer:

Ancak bunu uygulamaya çalıştığımda, tüm göstergem "dışarı çıkıyor" - bunun nedeni, mantığı anlamadığım için, nereye ve hangi koşullar altında ekleyeceğimi bulamamamdır.


Test cihazındaki bu seçenek yeterince çalışıyor.
Şöyle dolaştım:

         if (FirstChanel) 
        { 
           if (Up[i- 2 ]== 0 && Down[i- 2 ]== 0 )
          {
            Up[i- 1 ]   = high;   
            Down[i- 1 ] = low; 
          } 
           else
          {
            Up[i- 1 ]   = Up[i- 2 ];   
            Down[i- 1 ] = Down[i- 2 ]; 
          }  
        }

Ve nerede olursa olsun [i] 1 bar geriye kaydırıldı

Ve tam burada:

   Comment ( "DrawChannel =" ,DrawChannel, "\n" ,
           "limit =" ,limit); // изначально значение было равно 1
  
   limit = Bars -IndicatorCounted()- 1 ; 
   if (limit > = 1 )                    limit = Bars - 1 ; // и это условие не выполнялось, поставил >= и начало считать
Dosyalar:
 
Güzel gün. Foruma baktım ama belirli bir cevap bulamadım Danışmanın aynı anda birkaç döviz çifti ile çalışması mümkün mü? Açıklamalarında danışmanların işlem gördüğü bazı sitelerde böyle bir fırsat var gibi görünüyor ama emin olmak isterim.Mümkünse böyle bir uygulamanın yöntemi hakkında bir link atın. Teşekkür ederim.
 
Trendy :

Foruma baktım ama belirli bir cevap bulamadım Danışmanın aynı anda birkaç döviz çifti ile çalışması mümkün mü?

Danışmanların açıklamalarında işlem gördüğü bazı sitelerde böyle bir fırsat var gibi görünüyor, ancak emin olmak istiyorum.

muhtemelen. danışman yalnızca DC'nizin sembol sayısı ile sınırlıdır.

Cevabı bulamadınız çünkü sorunuz özünde aptalca.

Mümkünse, lütfen bunun nasıl yapılacağına dair bir bağlantı gönderin.

https://www.mql5.com/en/code
 
Integer :


1. Anlaşılan anlayışla ilgili sorunlarınız var. Konuşmanın ne hakkında olduğunu anlıyorum.

2. Teşekkür ederim ama tavsiye istemedim. Üstelik konuşma, artık aynı iş parçacığında olmayanları senkronize etmekle ilgilidir.

3. Ve bilimde olması gerektiği gibi. Hangi bilimle? kendi başınıza mı? Bir gün neye ihtiyacın olduğunu anlayacaksın, ama bunda kafan karışacak bir şey yok. Programlama dilleri ve algoritmalar aptallar tarafından icat edilmedi ve yaratılmadı. Ancak bazı nedenlerden dolayı senkronizasyon ve kuyruk oluşturma araçları ile sağlanır.

4. Çok yanılmamışım. Doğruysa.... Senkronizasyon varsa. Ancak burada biraz önce verdiğiniz kodda senkronizasyon yok, sadece atomik erişim var.

3. Sistem programlama bilimi üzerine. Richter'i okuyun. Kuyruklardaki kafa karışıklığınızı aydınlatacaktır.

4. Senkronizasyon nedir? Bu, herhangi bir kaynağa atomik erişimdir. Kodum bunu yapıyor. Kuyruk sistem tarafından oluşturulur. Modüller, yürütme süreleriyle orantılı olarak yürütülür. Yürütme sırası önemli değildir. Her şey sistem tarafından yapılır. Aptal fikirler değil. Belirli bir örnekle bunun tersini kanıtlamaya çalışın. Günlüğü analiz edin. Özel sıralarınız ile sorun yaşamadan her şeyin doğru bir şekilde yürütüldüğünü göreceksiniz.

Bu arada, MQL4'te bir dil olarak, atomik erişime sahip bir fonksiyon var. C++ da hiçbiri yok. Bunları WinAPI işlevleri için sarmalayıcı olarak kendiniz yazmanız gerekir. Bunu bir sınıfta uygulamak daha iyidir.

tamsayı :

Bir kez daha, her ihtimale karşı, bir denizaltıda tankta bulunan ve hala kask takanlar için. Burada sadece atomik erişim gösterilir. Buradaki işlevlerin çalışma sırası - rüzgar estikçe olacaktır. Bu kod, işlevlerin tek tip yürütülmesini sağlamaz. Bu nedenle, bazı işlevlerin çok uzun süre dışarıda bırakılmayacağının garantisi yoktur. Sırf işlemcinin frekansı yüksek diye programlamada yavaşlığa güvenmek, çok yüksek işlemci frekansında bile saçmadır.

Tankta olmayanlar için bir kez daha. Yürütme sırası sistem tarafından sağlanır. Tekdüze yürütme nedir? Yürütme süresi ve sayısı bilinmeyen iş parçacıklarının tek tip yürütülmesini nasıl sağlayabilirsiniz? Neden bu kadar rahatsız ediyorsun? Onlar zaten sizin için düşündüler ve yaptılar. Senkronizasyon nesnelerini kullanın.
Elbette, iş parçacıklarının yürütülmesi için özel bir sıranın gerekli olduğu durumları hariç tutmuyorum. Bu en yüksek sıkıntı derecesidir :-)) Bu tür kodlardan kaçınmak gerekir. Çünkü burada bir paradoks var. Neden bir görevi birkaç iş parçacığında yürütüp, sonra onları tek bir iş parçacığına indirgeyesiniz? Tek iş parçacığı yürütme kullanın. O zaman senkronizasyon gerekli olmayacak.

Bir kuyruğa ihtiyaç duyulduğunda başka bir durum var. Ancak, iş parçacıklarının yürütme sırası değil, iş parçacıklarından alınan verilerin işlenme sırası (dişlerin çalışmasının sonuçları). Bu, kuyruklar için en yaygın görevdir.

tamsayı :

Senkronizasyon da göreceli bir kavramdır. Neyi neyle senkronize etmek? Atomik erişim sağlamak için senkronizasyon? Kim sıraya girecek? Junko, belki kitaplığınızda, MSDN'den gelen kod alınırsa, normal olarak sıra oluşturulur, çünkü orada her şey doğru yapılır. Ve sen onun ne yaptığını anlamadan yaladın - maymun gözlüğü gibi. Ve belki, her zaman olduğu gibi, şaka yaptılar. Çünkü anlamıyorsun. Atomik erişim ve kuyruk sağlamak için senkronizasyonu karıştırıyorsunuz.

Ve yine isteyenler için... :-))

Senkronizasyon, bir kaynağa atomik erişim sağlanmasıdır. Kuyruk sistem tarafından oluşturulur. Yürütme garantilidir, sipariş değildir. MSDN'de, büyük olasılıkla kod doğrudur, ancak uygun değildir. Kolay senkronizasyon için kendi sınıfınızı yazın. Dersimi Andrey Postnikov'un dersi ilkesine göre yazdım. Nazikçe bana nasıl düzgün bir şekilde senkronize edeceğimi gösterdi. Doğru, bu bir sınıf değil. Her senkronizasyon nesnesi için bir sınıf, her şey için başka bir kilit sınıfı ve bekleme işlevleri için bir ad alanı ortaya çıktı.
Aslında, her şeyin cevabı yukarıda zaten verildi.

 

Junko, umutsuzsun. Düşünmek senin için zorsa, düşünme, bu konuya hiç tükür, bu senin işin değil ...

Bir şey test edilmemiş ve kanıtlanmamış olsaydı ve bir anlaşmazlığa girmemiş olsaydı. Sorun şu ki sen Vadim, yapıcı konuşmalar yapamıyorsun. Senkronizasyonun yalnızca atomik erişim için olduğunu, kuyruk oluşturma için olmadığını kendiniz onaylamanız iyi olur. Sen Vadim, şimdi anlamadan kendinle tartışıyorsun.

 
Integer :

Junko, umutsuzsun. Düşünmek senin için zorsa, düşünme, bu konuya hiç tükür, bu senin işin değil ...

Bir şey test edilmemiş ve kanıtlanmamış olsaydı ve bir anlaşmazlığa girmemiş olsaydı. Sorun şu ki sen Vadim, yapıcı konuşmalar yapamıyorsun. Senkronizasyonun yalnızca atomik erişim için olduğunu, kuyruk oluşturma için olmadığını kendiniz onaylamanız iyi olur.

Neden ben ... Bazıları gibi bir programcı değilim :-))
 
Zhunko :

Senkronizasyon, bir kaynağa atomik erişim sağlanmasıdır.
Kuyruk sistem tarafından oluşturulur.


Yüksek alkış! 378. sayfadaki kod konusu hakkında. Terminal kuyruğun sırasını düzenlese bile, fonksiyonun hangi durumda yürütüldüğünü ve hangisinde reddedildiğini bilemez.
 
Ayrıca, sistem düzenlemesi hakkında. Birden fazla iş parçacığı oluşturulursa - evet, sistem düzenleyecektir. Ancak yandan biri bu akarsulara tırmanırsa, o zaman zaten her şeyi kendi başınıza düşünmeniz gerekir, sistemden mucize olmaz.