Küresel bir paylaşılan değişkenim var ve bu, 5 iş parçacığının her biri tarafından 5 kez güncelleniyor. Benim anlayış gereğince artım operasyonu Yani maksimum ve 5 konuda keyfi binişimi verilen minimum değer ne olacağını bu senaryoda o sormak istiyorum 3 talimatlar Birden çok iş parçacığı tarafından artırıldığında paylaşılan değişkenin minimum ve maksimum olası değeri
load reg, M
inc reg
store reg, M
oluşmaktadır.
Bana göre, maksimum değer 25 (25'ten fazla olabileceğinden% 100 eminim) ve minimum değer 5'tür. Ancak minimum değerden emin değilim. Bazı keyfi serpiştirmede 5 daha az olabilir mi? Herhangi bir girdi büyük ölçüde takdir edilecektir. artım tanımın önüne alındığında
/* Global Variable */
int var = 0;
/* Thread function */
void thread_func()
{
for(int c = 0; c < 5; c++)
var++;
}
Neden bir 'global' değişkeni kilit olmadan güncellemeye çalışıyorsunuz? –
@Mitch Wheat, daha "ilginç" bir teorik soruya neden oluyor? –