Thread overview
Eş zamanlı programlama dersi örneği
Apr 11, 2012
zafer
Apr 11, 2012
Salih Dinçer
April 11, 2012
import std.stdio;
import std.concurrency;

void kimlikBilgisi(string açıklama)
{
   writefln("%s: %s, adresi: %s", açıklama, thisTid, &thisTid);
}

void işçi()
{
   kimlikBilgisi("isci ");
}

void main()
{
   spawn(&işçi);
   kimlikBilgisi("sahip");
}

http://www.ddili.org/ders/d/es_zamanli.html

Bu kod bendeki (Windows 7, dmd v2.059) çıktısı aşağıdaki gibi oluyor. Yanlış olan nedir?

Alıntı:

>

PS E:\Proje - D\SubLime_Test> dmd -w -wi main.d
PS E:\Proje - D\SubLime_Test> .\main.exe
sahip: Tid(std.concurrency.MessageBox), adresi: 40B14C
isci : Tid(std.concurrency.MessageBox), adresi: 40B14C

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

April 11, 2012

Şöyle düzenledim:

import std.stdio, std.concurrency;

void kimlikBilgisi(string açıklama, Tid kimlik) {
   writefln("%s:\t%s, adresi: %s", açıklama, kimlik, &kimlik);
}

void işçi() {
   kimlikBilgisi("işci", thisTid);
}

void main() {
   Tid tİşci = spawn(&işçi);
   kimlikBilgisi("sahip", thisTid );
   kimlikBilgisi("tİşçi", tİşci );
}

Çıktısı:
'sahip: Tid(std.concurrency.MessageBox), adresi: FF903D58
tİşçi: Tid(std.concurrency.MessageBox), adresi: FF903D58
işci: Tid(std.concurrency.MessageBox), adresi: F75CF2AC'

İlginç değil mi? tİşçi neden sahip ile aynı olur ki? Sonuçta spawn()'ın bize döndürdüğü Tid çalıştırıldığı yerin mi; çağrıldığının mı?

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

April 11, 2012

Tid.toString()'in çıktısı ben o bölümü yazdıktan sonra değişmiş ama önemsiz bir ayrıntı. Ayrıca o örneği de elimdeki taslaktan çıkarttım pek bir katkı sağlamıyor.

Ali

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