Alıntı (darkofpain):
>ama sabit iş parçacığı 15 adet ile sınırlandırmak yerine
Eğer iş parçacığı adedini beklemekte olan istek adedinin bir fonksiyonu olarak tanımlayabiliyorsan kaba hatlarıyla basit bir işlem gibi görünüyor:
size_t gerekenİşçi(size_t bekleyenİstek)
{
// Senin programınca nasıl bir algoritma olacağını buradan
// bilemeyiz. Herhalde denemeler yaparak bileceksin. Rasgele bir
// algoritma:
return (bekleyenİstek / 10) + 1;
}
void main()
{
// Burada isteği kuyruğa yerleştir
// Burada bu hesapları yap
size_t beklemekteOlanİstekAdedi = 1000;
size_t mevcutİşçiAdedi = 3;
if (gerekenİşçi(beklemekteOlanİstekAdedi) < mevcutİşçiAdedi) {
// Burada yeni işçi başlat
}
// Burada boş bir işçiye bekleyen bir isteği ver
}
Alıntı:
>peki bunu hesaplamak ve istekleri diziye alma işlemini nasıl yapabilirim yardımcı olabilirmisiniz.
Hesaplama yukarıdaki gibi basitçe olabilir.
Diziye alma sorusu diğerinden daha da basit olduğu için ya ben bu soruların karmaşıklığını anlamıyorum ya da sen gereğinden daha karmaşık olduklarını sanıyorsun. :) D'de diziye eleman almaktan kolay ne var? :)
struct İstek
{
// ...
}
// ...
İstek[] istekler;
// ...
istekler ~= yeniİstek;
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]