Приятель недавно жаловался, что его чуть с работы не поперли.
Он - высококлассный программист в Штатах и его компания пишет ПО для банков. Рассказывает:
- Сижу я на совещании, слушаю представителя заказчика. Представитель говорит много, громко и в основном чушь. Я ему спокойно объясняю, что так делать нельзя, что вот это работать не будет, и так далее. А он мне: "Да вы представляете, с кем говорите?! Мы - Федеральный Резерв! Мы можем делать все, что захотим!" И я не нашел ничего лучше, чем сказать, что я это уже заметил...
Из метода передавался в объект ( который работает в ДРУГОМ потоке ) адрес локальной переменной. Представляешь, что случается, когда метод завершает работу?
Правильно, локальная переменная уничтожается. Адрес становится инвалидным. А так как объект, в который передается этот адрес - работает в другом потоке, то это вполне реальная проблема. Я на это долго медитирую... И иду спрашивать, как это работает? Ведь ясно же, что это ошибка.
На что мне автор говорит: ставлю у потока более высокий приоритет и благодаря этому объект УСПЕВАЕТ вычитать содержимое переменной.
А ты говоришь - "Архитектура"... "Планирование"... Индусам до нас далеко. Чисто по-русски. Успеть хапнуть, пока не пришел писец...