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

 
Integer :

Yüksek alkış! 378. sayfadaki kod konusu hakkında. Terminal kuyruk sırasını düzenlese bile, fonksiyonun hangi durumda yürütüldüğünü ve hangisinde reddedildiğini bilemez.
Ne olmuş? Neden bilmesi gerekiyor? Atomik erişim sağlanır. Yeter. Gerisini kendiniz halledin. Hangi görevden bahsediyorsun? Ve hepsi soyut.
 
Zhunko :
Ne olmuş? Neden bilmesi gerekiyor? Atomik erişim sağlanır. Yeter. Gerisini kendiniz halledin. Hangi görevden bahsediyorsun? Ve hepsi soyut.


Atomik erişim yeterli değil. Görevlerin sıralı olarak yürütülmesinin garantisi yoktur, bazı görevler geride kalabilir. Kodunuz ve günlükleriniz, görevlerin sırayla değil rastgele yürütüleceğini gösteriyor.
 
Zhunko :
... Gerisini kendiniz halledin ...

O yüzden bu konuda yazıyorum, önleminizi kendiniz almanız gerekiyor, sadece atomik erişim sağlamak yeterli değil.
 
Zhunko :
...Yeter. Gerisini kendin yap....

Vadim, inanılmaz bir şekilde kendinle çelişiyorsun. İlk önce, yeterli olanı yazın. Ardından, başka bir şeyin yapılması gerektiğini anladığınız (veya tahmin ettiğiniz) ortaya çıkıyor.
 
Güzel gün! GlobalVariableSet( "Profit_pomnim", Itogo_Profit); global değişkenini oluşturduktan sonra lütfen yazınız.
Geleneksel şekilde kullanılabilir mi?

Profit_pomnim=365; Bumbara=Profit_pomnim; Yoksa yalnızca özel işlevler aracılığıyla mı erişilmelidir? GlobalVariableSet("Profit_pomnim", 365);
 
Dimka-novitsek :
Güzel gün! GlobalVariableSet( "Profit_pomnim", Itogo_Profit); global değişkenini oluşturduktan sonra lütfen yazınız.
Geleneksel şekilde kullanılabilir mi?

Profit_pomnim=365; Bumbara=Profit_pomnim; Yoksa yalnızca özel işlevler aracılığıyla mı erişilmelidir?


Bumbara=Profit_pomnim - bu mümkün değil, Profit_pomnim değişkeni yok. Ama global bir değişken Profit_pomnim var.

Bu nasıl olmalıdır: Bumbara=GlobalVariableGet("Profit_pomnim");

 
Integer :

Atomik erişim yeterli değil. Görevlerin sıralı olarak yürütülmesinin garantisi yoktur, bazı görevler geride kalabilir. Kodunuz ve günlükleriniz, görevlerin sırayla değil rastgele yürütüleceğini gösteriyor.
Anlamıyorum... Nasıl yani?... Garantisi nedir? Kendinize programcı diyorsunuz. Garantili olacak şekilde yazın. Bir görev nasıl "bir botun arkasında kalabilir"? Yürütülmediğini orada ne yazdın?
Bir kaynağa erişmek için özel bir sıraya bağlı olduğunuzdan şüpheleniyorum. Bu, algoritmayı düzenlemek için yanlış bir yaklaşımdır. Önemli olmayan bir şekilde yazın.
tamsayı :

Bu yüzden kendi başımıza önlem almamız gerektiğini, sadece atom erişimini sağlamak yeterli olmadığını yazıyorum.
Tecrübelerime göre bu hiçbir zaman gerekli olmadı. Bu yaklaşımdan her zaman kaçınabilirsiniz. Basitleştirin. Daha güvenilir çalışacaktır.
tamsayı :

Vadim, inanılmaz bir şekilde kendinle çelişiyorsun. İlk önce, yeterli olanı yazın. Ardından, başka bir şeyin yapılması gerektiğini anladığınız (veya tahmin ettiğiniz) ortaya çıkıyor.

Çelişkiler yok. Yukarıda cevaplandı.

=====================

Karışıklık pahasına, bir aydaki gün sayısını hesaplamak için karmaşık bir algoritmaya sahip bir işlevi nasıl yazdığınızı hatırlıyorum. Hala her hatırladığımda gülümsüyorum.

Dimitri, işleri karmaşıklaştırma. Sabitler varsa, bunları hesaplamak gerekli değildir. Bunları duyurmak için yeterli.

Aynı şey çoklu kullanım için de geçerlidir. İhtiyacınız yoksa kullanmayın. Bir kaynağa erişmenin özel sırası, tek iş parçacıklı yürütme anlamına gelir.

tamsayı :
Ayrıca, sistem düzenlemesi hakkında. Birkaç 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.
Bu kim? Akışlarımda kimse bir yabancıya tırmanmaz. Korunmaları için yazmak gerekir.

 

Zhunko :

1. Anlamıyorum... Nasıl yani?... Garantisi nedir?

2. Kendinize programcı diyorsunuz.

3. Garantili olacak şekilde yazınız.

4. Bir görev "bir botun arkasında" nasıl olabilir? Yürütülmediğini orada ne yazdın?

5. Bir kaynağa erişmenin özel bir sırasına takıldığından şüpheleniyorum. Bu, algoritmayı düzenlemek için yanlış bir yaklaşımdır. Önemli olmayan bir şekilde yazın.

6. Benim pratiğimde bu hiçbir zaman gerekli olmadı. Bu yaklaşımdan her zaman kaçınabilirsiniz. Basitleştirin. Daha güvenilir çalışacaktır.

Çelişkiler yok. Yukarıda cevaplandı.

=====================

7. Karmaşıklık pahasına, bir aydaki gün sayısını hesaplamak için karmaşık bir algoritmaya sahip bir işlevi nasıl yazdığınızı hatırlıyorum. Hala her hatırladığımda gülümsüyorum.

8. Dmitry, işleri karmaşıklaştırma. Sabitler varsa, bunları hesaplamak gerekli değildir. Bunları duyurmak için yeterli.

9. Aynısı çoklu kullanım için de geçerlidir. İhtiyacınız yoksa kullanmayın.

1. Anlıyorum!

2. Nerede, ne zaman, hangi yerde? Ve burası şimdi nerede?

3. Garantili olacak şekilde yazıyorum.

4. Atomik erişimin sağlandığı herhangi biri.

5. Hayır. Ve sabitlenmiş değilim, ancak tüm görevlerin sırayla yürütülmesi için önlemler alıyorum.

6. Lala yapma. Kitaplığınızdaki terminalden terminale iletişim özelliği, yalnızca atomik erişim değil, bunu gerektirir.

7. Bu fonksiyon nedir? Daha. Bu mu? Seni ne güldürdü? Belki de bir şeyi anlamadın. Eğer bu işlevse, bu bir spor ilgi alanıydı ve başka bir şey değildi. Bu arada, bu oldukça zor bir görev ve bu görev için (bilinenlerden) en uygun algoritma da oldukça karıştı. Yani alaycılığın yanlış.

8. Çocuk bahçesinde dadı olarak iş bulabilir misin? Öğretim seviyesi aynı, uygun. Belki bir önceki paragrafta emcule fonksiyonları ile saniye cinsinden zamanı saat, dakika vs.'ye nasıl çevireceğimi bilmediğime dair bir ipucu vardır?

9. Hafızayla mı yoksa gerçekliğin farkındalığıyla mı ilgili sorunlar? Konuşmanın ne hakkında olduğunu anlayın - görevlerin paralel yürütülmesini sıralı hale nasıl dönüştüreceğinizden.

 
Integer :

9. Hafızayla mı yoksa gerçekliğin farkındalığıyla mı ilgili sorunlar? Konuşmanın ne hakkında olduğunu anlayın - görevlerin paralel yürütülmesini sıralı bir uygulamaya nasıl dönüştüreceğinizden.

Senkronizasyonun çalışmadığı varsayımından yola çıkarak başladı:

tamsayı :

Vadim, kullanmayı denedin mi? Nifiga senkronize olmuyor. Geçenlerde onunla oynadı. Kendiniz sıraya girmelisiniz. Ne yazık ki, sadece satırın kodunu üç ile azaltmanıza izin verir. Ya ben bir şey anlamadım.

Senkronizasyonun çalıştığı kodla sonuçlandı. Kaynağa atomik erişim sağlanır. Gerisi - akışların tek bir akışa indirgenmesiyle ilgili sorununuz. Hatalı algoritmayı yeniden gözden geçirmeni önerdim. Böyle bir görev için tek bir doğru çözüm vardır - tüm kodu tek bir iş parçacığına getirmek. Ardından kaynağa erişim, senkronizasyon olmadan sırayla olacaktır. Kod yürütme süresi, çok iş parçacıklı yürütme ile aynı olacaktır. Basitleştirin.

 
Zhunko :

1. Senkronizasyonun çalışmadığı varsayımından yola çıkarak:

Senkronizasyonun çalıştığı kodla sonuçlandı. Kaynağa atomik erişim sağlanır. Gerisi - akışların tek bir akışa indirgenmesiyle ilgili sorununuz. Hatalı algoritmayı yeniden gözden geçirmeni önerdim. Böyle bir görev için tek bir doğru çözüm vardır - her şeyi tek bir akışa indirgemek. Ardından kaynağa erişim, senkronizasyon olmadan sırayla olacaktır. Kod yürütme süresi, çok iş parçacıklı yürütme ile aynı olacaktır. Basitleştirin.


1. Bir varsayımdan değil, bu arada, 378. sayfadaki denemeniz tarafından da doğrulanan deneyin sonuçlarından.

2. 378. sayfadaki kod yalnızca atomik erişim sağlar. Görev yürütme kuyruğu oluşturulmadı. Bazı görevlerin çok uzun bir süre yürütülmeyeceği durumlar olabilir.

Neden: