2010-09-03 3 views
1

Моя программа представляет собой график. Есть деревни с дороги и гномы, которые бегут вдоль них. Гномы имеют резьбу. Есть банк страны, которого нет. Когда гном путешествует по дороге, он платит пошлину в банк. Когда дороги сломаются, банк откажется от денег, чтобы восстановить его. Будут ли у меня проблемы, если два гнома попытаются заплатить банку сразу, если банк не протянет нитку?extend Thread and call non Thread методы

+0

Какой язык/платформа? –

+1

+1 вашему инструктору за интересную идиому для этой проблемы –

ответ

0

Банку не нужно иметь собственный поток, но он может действовать как семафор/блокировка/монитор для синхронизации. Финансовые операции гномов должны быть синхронизированы в банке (так что, как и в реальном банке, они не платят деньги ровно в одно и то же время, но один из них должен стоять в очереди и ждать в очереди).

+0

Спасибо за помощь. Я использую Java. Я закончил тем, что класс Bank расширил TimerTask и использовал таймер, чтобы каждый раз вызывать очередность банка, а удаленный int - в суммарную сумму Банка. Мне просто нужно убедиться, что теперь я могу добавить ints в очередь с помощью многопоточных гномов. Спасибо! – Arjun