Bence şirketiniz çoklu iş parçacığı kullanmamalı.
Çok iş parçacıklı bir proje yaptıktan sonra, işlerin işleyebilmesi için iki tekniğin kritik olduğunu gördüm. İlk olarak , kodun doğru yazılması gerekiyordu. Her alanın, uygun şekilde bildirildiğinden ve başvuru yapılan her yerde eşitlendiğinden emin olmak için manuel olarak kontrol edilmesi gerekiyordu. (Uyarı: Cevabımı kısa veya herhangi bir hızda, daha kısa tutmak için burada işleri biraz basitleştiriyorum.) İkincisi , kodun tek ve çok çekirdekli makinelerde düz olarak çalıştırılmasıyla test edilmesi gerekiyordu - birçok dakika% 100 kullanarak her bir çekirdeğin. (Ve her çekirdeğin sadece% 2'sini kullanıyorsa, benim için sıkça yaptığı gibi, bu da bir hata.)
Bunu yönetebilirsiniz, ancak kuruluşunuz yapamaz. Onlar anlamadıkları sorunu anlasalar bile, uzmanlıkları yoktur.
Çoğu dil bundan kaçınmanın yollarını sunar. Genellikle kendi iş parçacığına sahip bir soket okuyucunuz varsa, bilgileri ana iş parçacığına mümkün olduğunca hızlı ve basit bir şekilde almasını sağlayın. Daha da iyisi, okumanın iş parçacığını sizin için ele alacak sistem sınıflarını / işlevlerini arayın. Çoğu GUI API'sinin yaptığı gibi "olaylar" ı birbiri ardına çalıştıran bir kuyruk kullanın. (Bu konuda GUI API'sı olay kuyruğunun kendisini kullanın.) Paralel işleme ihtiyacınız varsa, veri / alanları tek bir iş parçacığında tutmanıza ve sizin için tüm aktarımları işlemenize izin verecek bir tür "işçi iş parçacığı" bulabilirsiniz.
Çoklu iş parçacığının tüm tehlikelerine vurgu yapın. (Korkunç hikayeler: En sevdiğim hata şu gibi birkaç satırdan int i = 5; i = i * i;
oluşuyordu : bu i
35 değerine sahip oldu if (thing != null) thing.reset();
. yepyeni, garip bir dünyaya adım atmak ve belki de büyük bir adım atmaları gerekir.
Gerçek emin çoklu nasıl değilim gerektiğini ele alınması. İş bir kişiye verilebiliyorsa ve başarısız olursa yaptıkları her şey yolunda giderse, iyi. Ancak bir takım sadece en zayıf üyesi kadar güçlü olacak ve iyi bir programcı bile tam gelişmiş çoklu kullanımda sorun yaşayacaktır. Umarım dil güvenli hale getirmek için bir yol bulur. Orada bazı yararlı yazılımlar gördüm. Ancak, yürütme süresi kritik değilse ve iyi bir programcı veya kanıtlanmış bir ekip yoksa çok iş parçacığından kaçınmanın en iyisi olduğunu düşünüyorum .