none
MULTITHREADING RRS feed

  • Soru

  • Merhaba arkadaşlar kolay gelsin,

    3 adet thread kullanmak istiyorum bu 3 thread da aynı metotu kullanacak. Merak ettiğim konu bu 3 thread aynı metotu kullanacağı için bir çakışma ihtimali var mı ? yani metotun içindeki değişken değerleri vs birbirine girebilir mi böyle bir durum veya olasılık var mı ?

    void Method(object id)
    {
    
     var a;
     var b;
    }

    gibisinden bir metota 3 adet thread aynı anda ulaşacak. Bilgilerinize paylaşacağınız için şimdiden teşekkür ederim.

    22 Eylül 2018 Cumartesi 15:59

Yanıtlar

  • Kısaca hayır çakışma olmaz ama işler karmaşıklaştığı zaman olabilir.

    Örneğin yukarıdaki örnekte var a,b yerel bir değişkendir sadece çağrıldığı zaman oluşturuluyor, metod her çağrıldığında her metod o an çalışıyor bile olsa benzersiz bir metodmuş gibi davranır. Eğer işin içine yerel değil de global yani metod dışındaki değişkenler de kullanıyorsa (değer atama, silme, güncelleme vs) kim kimin içeriğini silmiş değiştirmiş anlamak zorlaşır (çakışma işlemi bağımsız bir takım durumlarda daha iyi görülebilir). Bir dosyaya içerik ekleyen bir metoddur, birden fazla çağrı yapılırsa dosyayı sadece bir kanaldan düzenleyebildiğimiz için diğerleri hata verebilir.

    Ayrıca bu işlem veritabanlarını kullanırken de dikkat edilmesi gereken bir şeydir, örneğin veritabanının bağlantı sayısı maksimum 3'tür sen 4 kere bağlanmaya çalışırsın sonra hata verebilir gibi.


    TR| Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz. EN| If this is the answer to your problem, mark "Propose as Answer" and if it is helpful, you can contribute to the workig of the forum by "Voting".

    • Yanıt Olarak İşaretleyen Çoloğ 22 Eylül 2018 Cumartesi 19:24
    22 Eylül 2018 Cumartesi 16:10

Tüm Yanıtlar

  • Kısaca hayır çakışma olmaz ama işler karmaşıklaştığı zaman olabilir.

    Örneğin yukarıdaki örnekte var a,b yerel bir değişkendir sadece çağrıldığı zaman oluşturuluyor, metod her çağrıldığında her metod o an çalışıyor bile olsa benzersiz bir metodmuş gibi davranır. Eğer işin içine yerel değil de global yani metod dışındaki değişkenler de kullanıyorsa (değer atama, silme, güncelleme vs) kim kimin içeriğini silmiş değiştirmiş anlamak zorlaşır (çakışma işlemi bağımsız bir takım durumlarda daha iyi görülebilir). Bir dosyaya içerik ekleyen bir metoddur, birden fazla çağrı yapılırsa dosyayı sadece bir kanaldan düzenleyebildiğimiz için diğerleri hata verebilir.

    Ayrıca bu işlem veritabanlarını kullanırken de dikkat edilmesi gereken bir şeydir, örneğin veritabanının bağlantı sayısı maksimum 3'tür sen 4 kere bağlanmaya çalışırsın sonra hata verebilir gibi.


    TR| Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz. EN| If this is the answer to your problem, mark "Propose as Answer" and if it is helpful, you can contribute to the workig of the forum by "Voting".

    • Yanıt Olarak İşaretleyen Çoloğ 22 Eylül 2018 Cumartesi 19:24
    22 Eylül 2018 Cumartesi 16:10
  • Deleted
    24 Eylül 2018 Pazartesi 07:16