Thread overview
Yeni Konu Örnekleri
Apr 04, 2012
Salih Dinçer
Apr 05, 2012
zafer
Apr 05, 2012
Salih Dinçer
April 05, 2012

Merhaba,

Çok sık örnek türetmeye başladım, belki D kitabına eklenebilir diye; bunları zamanla paylaşacağım. Konun örnekleri yeterli olsa bile buradan ilgilendiğiniz konuyu takip edebilirsiniz...

KOŞUT İŞLEMLER (spawn, send, shared...)

  • http://codepad.org/exsQx5vP (.d)
    ** Çıktısı:'[salih@telyeweb ders]$ ./spawnTest2'
    ' 54 ms.
    firstFunc() entered x 1 times...
    554 ms.
    secondFunc() entered x 1 times...
    157 ms.
    firstFunc() entered x 2 times...
    644 ms.
    secondFunc() entered x 2 times...
    296 ms.
    firstFunc() entered x 3 times...'
  • pizzaDlang2.d (http://ddili.org/forum/thread/772) (Ayrıca bakmalısınız, ders arası projesi)
  • http://codepad.org/uotD4EDn (pizzaDlang.d)
    ** Çıktısı:'[salih@telyeweb ders]$ ./pizzaYap'
    ' Un 97, Su 98, Yağ 99, Gaz 992, Fırın 47 °C
    Un 94, Su 96, Yağ 98, Gaz 990, Fırın 49 °C
    Un 91, Su 94, Yağ 97, Gaz 989, Fırın 50 °C'

YAPILAR (struct, this, static...)

  • http://codepad.org/eHwz1scf
    ** Çıktısı:'[salih@telyeweb ders]$ ./staticStruct'
    ' - Kurulurken sayı.n'nin değeri = 3 <-n²+1
    - Karesi alınıp +1 ekli değeri = 10 <-n²
    - Tekrar karesi hesaplatılırsa = 100 n->

       Acaba aynı mı; yoksa değeri = 10'
    

ZAMANLAR (clock, currTime, Tick...)

  • http://codepad.org/7djTiaaZ
    ** Çıktısı:'[salih@telyeweb ders]$ ./timeTick'
    ' Geri sayım başladı... TickDuration(20496)
    - 10 TickDuration(98091)
    ...
    - 3 TickDuration(7000436360)
    - 2 TickDuration(8000460917)
    - 1 TickDuration(9000484748)
    Mekik fırlatıldı !!! TickDuration(10000510014)'

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Orada şu satır dikkatimi çekti:

   do {} while (Clock.currTime < sonrakiZaman);

O döngü çekirdeklerden birisini %100 meşgul eder. En iyisi döngü içine iş parçacığını küçük bir süre duraksatan bir komut yazmaktır:

import core.thread;
// ...
   do {
       Thread.sleep(dur!("msecs")(1));
   } while (Clock.currTime < sonrakiZaman);

Ama sen bir anlamda zaten sleep'in kendisini gerçekleştirdiğin için benim söylediğimin bir anlamı yok. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Alıntı (acehreli):

>

O döngü çekirdeklerden birisini %100 meşgul eder. En iyisi döngü içine iş parçacığını küçük bir süre duraksatan bir komut yazmaktır:

Gerçekten gözle görülür bir fark var. Ali'nin kodunu denemek için şöyle bir metot yazdım,

void SaniyeKadarBekle(int saniye)
{
   Thread.sleep(dur!("seconds")(saniye));
}

Önceki bekleme kodu gibi işlemciye yüklenmiyor. Bu tür küçük ama etkili bilgiler gerçekten çok değerli. Diğer taraftan bende bir bekleme kodu yazsaydım Salih gibi yazardım.

Bu arada Salih, bu kodları dışarıda bir yere değilde site içinde bir yerlerde saklasak daha iyi olmaz mı?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 06, 2012

Olur tabi arkadaşlar, her türlü nasıl uygunsa o şekilde yapabiliriz...

Benim yukarıdaki amacım çok göz doldurmadan bağlantı vermekte. CodePad'i, D kodlarını (sürüm D1.x de olsa) çalıştırdığı için tercih etmiştim. Bir de üzerinde çalıştığım son örnek olan koşut işlemler ile ilgili pizzaDlang'ı forumdan nakledip tartışalım inşaallah. Ne dersiniz?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]