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

 
Zhunko :
Bir programlama dilinde bir kuyruğun nasıl organize edileceği programcıya bağlıdır. Çekirdek düzeyinde kuyruğa alma, sistem tarafından zorunlu kılınır ve garanti edilmez.


İşte burada. Biraz önce gösterilen kodunuzda, sipariş organize edilmemiş. Ve sistemin garanti edilmediği gerçeği - bahsettiğimiz şey ve kendi başımıza yapmamız gereken şey bu. Ancak bazı durumlarda bunu yapmak kolay ve basittir ve bazılarında çok fazla kod olacaktır ve düşünmeniz gerekir, çünkü bunun için özel araçlar yoktur.

Vadim, ilginç bir sohbet etme tarzın var, konuşmanın ne hakkında olduğunu ya da böyle özel bir bilgeliği unutmuş gibisin. Önce kodu gösterdiler ve düzene uyulduğunu iddia etmeye başladılar, şimdi bunun garanti edilmediğine dair bir tez ileri sürdüler... Bazen kendinizle çelişiyorsunuz ama bu aklın esnekliği değil.

 
Integer :


İşte burada. Biraz önce gösterilen kodunuzda, sipariş organize edilmemiş. Ve sistemin garanti edilmediği gerçeği - bahsettiğimiz şey ve kendi başımıza yapmamız gereken şey bu. Ancak bazı durumlarda bunu yapmak kolay ve basittir ve bazılarında çok fazla kod olacaktır ve düşünmeniz gerekir, çünkü bunun için özel araçlar yoktur.

Vadim, ilginç bir sohbet etme tarzın var, konuşmanın ne hakkında olduğunu ya da böyle özel bir bilgeliği unutmuş gibisin. Önce kodu gösterdiler ve düzene uyulduğunu iddia etmeye başladılar, şimdi bunun garanti edilmediğine dair bir tez ileri sürdüler... Bazen kendinizle çelişiyorsunuz ama bu aklın esnekliği değil.

Dim, yine iddialar? Sıralama, sistemin yeteneklerine göre yapılır. Sistemden başka ne istenebilir?

Daha fazla sıra düzenlemeye hiç ihtiyacım olmadı. Sistem yetenekleri yeterlidir. Çünkü kolay olmadığı için kernel seviyesindeki kuyrukları garanti etmezler. Ancak atomik yürütme garantilidir.

 
Zhunko :

Dim, yine iddialar? Sıralama, sistemin yeteneklerine göre yapılır. Sistemden başka ne istenebilir?

Daha fazla sıra düzenlemeye hiç ihtiyacım olmadı. Sistem yetenekleri yeterlidir. Çünkü kolay olmadığı için kernel seviyesindeki kuyrukları garanti etmezler. Ancak atomik yürütme garantilidir.

Sistemin yeteneklerine göre ise sipariş verilmez. Ama sağlandığını iddia etmeye başladınız. Sonra garanti olmadığını kanıtlamaya başladılar. Şimdi hoşgörü gitti - bu sistemin yeteneklerine göre :) Düzeni sağlamak için hiçbir zaman ihtiyaç duymamış olmanız, programlamaya ilkeli yaklaşımınıza bağlıdır. Bilinen kitaplığınızdaki bazı işlevler için kuyruğa girmek gerekiyor. Garantili sıralama sağlanmadığı için - tebrikler! Hiçbir şikayetim yok, sadece bir kar fırtınası yaratmayın ve her şeyi bir tür gizem, gizlilik ve bir şeyin ötesinde başka bir şeyle havalandırmayın.

 
Teşekkürler!!
 
Integer :

Sistemin yeteneklerine göre ise sipariş verilmez. Ama sağlandığını iddia etmeye başladınız. Sonra garanti olmadığını kanıtlamaya başladılar. Şimdi hoşgörü gitti - bu sistemin yeteneklerine göre :) Düzeni sağlamak için hiçbir zaman ihtiyaç duymamış olmanız, programlamaya ilkeli yaklaşımınıza bağlıdır. Bilinen kitaplığınızdaki bazı işlevler için kuyruğa girmek gerekiyor. Garantili sıralama sağlanmadığı için - tebrikler! Hiçbir şikayetim yok, sadece bir kar fırtınası yaratmayın ve her şeyi bir tür gizem, gizlilik ve bir şeyin ötesinde başka bir şeyle havalandırmayın.

Sistem, kuyruğun sizin hoşlanmadığınız ve yürütülmeyi bekleyen modüllerin sıra sırasına uymayan bir sırada yürütülmesini sağlar. Kuyruk eksikliği dediğin bu mu?

Benim için her sıra bir kuyruktur. Çekirdek düzeyinde yürütme kuyruğu dahil. O bir kara kutu. Olduğu gibi al. Kendi siparişinizle kendi sıranıza ihtiyacınız var - kendiniz düzenleyin.

O kütüphanede özel bir yürütme sırasına gerek yoktur. Farklı senkronizasyon nesneleri kullanıyorum. Hangi sırayla yürütülür - önemli değil. Bunun hakkında düşünmek zorunda değilsin. Sistem her şeyi kendisi yapacak.

Gizliliği anlamadım. Yine fantezi mi? :-))

 
Zhunko :

1. Sistem, kuyruğun sizin sevmediğiniz ve yürütmeyi bekleyen modüllerin kuyruğunun sırasına uymayan bir sırada yürütülmesini sağlar. Kuyruk eksikliği dediğin bu mu?

2. Benim için herhangi bir sıra bir kuyruktur. Çekirdek düzeyinde yürütme kuyruğu dahil. O bir kara kutu. Olduğu gibi al. Siparişiniz için kendi sıranıza ihtiyacınız var - kendiniz düzenleyin.

3. O kütüphanede özel bir yürütme emrine gerek yoktur. Farklı senkronizasyon nesneleri kullanıyorum. Hangi sırayla yürütülür - önemli değil. Bunun hakkında düşünmek zorunda değilsin. Sistem her şeyi kendisi yapacak.

4. Gizemi anlamadım. Yine fantezi mi? :-))


1. Atomik erişimin sağlanması, hiçbir şekilde tek tip erişim düzeni sağlanması anlamına gelmez. Fonksiyonları çağırma sırası neredeyse rastgele olacaktır, bu da bazı zamanlarda bazı fonksiyonların dışarıda bırakılmama olasılığını dışlamaz.

2. Bir kara kutu değil, tamamen yok. İnfaz emri, yedinci kattan hapşıran bir büyükanne gibidir.

3. Bununla birlikte, tüm işlevlerin (daha doğrusu, bir paket içindeki terminallere erişim) tek tip yürütülmesini sağlamaya ihtiyaç vardır. Bazen o kadar etkileyici ki konuşmanın ne hakkında olduğunu anlamıyorsunuz. Yani hayır. Ve her zaman böyle bir fırfırla ... Bu değil, yani, ama farklı bir şekilde, öyle değil ve böyle değil ...

4. Sen, Vadim, o kadar daldın ki, kafanın karıştığını, nasıl kafanın karıştığını ve ne kadar karıştırdığını anlamadın ...

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


1. Atomik erişimin sağlanması, hiçbir şekilde tek tip erişim düzeni sağlanması anlamına gelmez. Fonksiyonların çağrıldığı sıra neredeyse rastgele olacaktır, bu da bazı zamanlarda bazı fonksiyonların dışarıda bırakılmama olasılığını ortadan kaldırmaz.

2. Bir kara kutu değil, tamamen yok. İnfaz emri, yedinci kattan hapşıran bir büyükanne gibidir.

3. Bununla birlikte, tüm işlevlerin (daha doğrusu, bir paket içindeki terminallere erişim) tek tip yürütülmesini sağlamaya ihtiyaç vardır. Bazen o kadar etkileyici ki konuşmanın ne hakkında olduğunu anlamıyorsunuz. Yani hayır. Ve her zaman böyle bir fırfırla ... Bu değil, yani, ama farklı bir şekilde, öyle değil ve böyle değil ...

4. Sen, Vadim, o kadar daldın ki, kafanın karıştığını, nasıl kafanın karıştığını ve ne kadar karıştırdığını anlamadın ...

Puanları bölmüş gibisin ama anlama göre cevap vermiyorsun. Evet, cevap vermeye gerek yok. Sizin için sıranın ve yürütme sırasının aynı olduğunu anladım. Yani neden bahsettiğimi anlamıyorsun.

Tek tip yürütme gerekiyorsa, tek bir iş parçacığı kullanın. O zaman senkronizasyon gerekli değildir. 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?

Benim için her şey basit. Programlama bilimi tarafından beklendiği gibi korumalı bloktan giriş ve çıkış. Özel kuyruğunuz için endişelenmenize gerek yok. Bir gün bunu anlayacaksın.

Evet, seçim konusunda hala çok yanılıyorsunuz. Düzgün yapılan senkronizasyon (yani kod ve mantık hatası olmadan) tüm iş parçacıklarını yürütür. Bu, yürütme sırasının aksine sistem tarafından garanti edilir.

 
Zhunko :

1. Puanları bölmüş gibisiniz ama anlama göre cevap vermiyorsunuz. Evet, cevap vermeye gerek yok. Sizin için sıranın ve yürütme sırasının aynı olduğunu anladım. Yani neden bahsettiğimi anlamıyorsun.

2. Tek tip yürütme gerekiyorsa, tek bir akış kullanın. O zaman senkronizasyon gerekli değildir. 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?

3. Benim için her şey basit. Programlama bilimi tarafından beklendiği gibi korumalı bloktan giriş ve çıkış. Özel kuyruğunuz için endişelenmenize gerek yok. Bir gün bunu anlayacaksın.

4. Evet, seçim konusunda da çok yanılıyorsunuz. Düzgün yapılmış senkronizasyon (yani kod ve mantık hatası olmadan) tüm iş parçacıklarını yürütür. Bu, yürütme sırasının aksine sistem tarafından garanti edilir.


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.

 
Zhunko :

Sıra, diğer herhangi bir dilde olduğu gibi düzenlenir. Korunan bloğun giriş ve çıkışının organizasyonu yoluyla kendi başına.

Bu komut dosyası:

Diğer işlevlerle değiştirmek gibi azaltma pahasına, çalışmayacaktır. Bu yüzden atomik erişim. MQL4'te bunu yalnızca bir işlev yapabilir.

İyi çalışıyor gibi görünüyor. 3000, 2000, 1000, 500, 300, 200 duraklamalı 6 komut dosyası yüklendi. İşte günlüğün bir parçası:

19:58:36 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Başlangıç
19:58:37 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Bitiş
19:58:37 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Başlangıç
19:58:39 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Bitiş
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Başlangıç
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Bitiş
19:58:39 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Başlangıç
19:58:43 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Bitiş
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Başlangıç
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Bitiş
19:58:43 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Başlangıç
19:58:45 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Bitiş
19:58:45 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Başlangıç
19:58:46 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Bitiş
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Başlangıç
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Bitiş
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Başlangıç
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Bitiş
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Başlangıç
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Bitiş
19:58:47 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Başlangıç
19:58:48 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Bitiş
19:58:48 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Başlangıç
19:58:50 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Bitiş
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Başlangıç
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Bitiş
19:58:50 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Başlangıç
19:58:54 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Bitiş
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Başlangıç
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Bitiş
19:58:54 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Başlangıç
19:58:56 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD Bitiş
19:58:56 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Başlangıç
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Bitiş
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Başlangıç
19:59:00 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Bitiş
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Başlangıç
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Bitiş
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Başlangıç
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD Bitiş


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.