Thread İçerisinde Değişkenlerin Local Ve Global Olma Durumu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Thread İçerisinde Değişkenlerin Local Ve Global Olma Durumu

Mesaj gönderen tuanna »

Thread içerisinde değişkenlerin durumlarını nasıl ayarlamalıyız...özellikle multi threading işlemlerde senkronizasyon sorunları yaşıyorum bu konuda örnek açıklama ve kod örnekelrinizi bekliyorum...

saygılarımla...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Fonksiyon içinde yazdığın değişkenler yani local değişkenler her thread için ayrıdır. Çünkü bunlar stack'te dururlar ve her threadin stacki kendine özeldir. Global değişkenler ise ortaktır. Ama delphinin threadvar diye bir reserved wordü var. Global değişkenini var yerine threadvar olarak tanımlarsan her thread için bu değişkenin bir kopyası çıkartılır ve her threadin kendine has bir global değişkeni gibi olur.

Eğer threadler arasında ortak bir değişken kullanacaksın, critical section veya TMultiReadExclusiveWriteSynchronizer nesnesini kullanabilirsin. İkincisini tavsiye ederim. İkincisinin mantığı aynı anda sadece bir thread yazma yapabilir, çok sayıda thread aynı anda okuma yapabilir. Diğerinde kullanımına göre değişir.
Cevapla