> А я чего-то не вкурю никак откуда проблеме-то взяться... По идее у тебя три > процесса должны крутиться. Один поставляет данные для обработки, второй их > обрабатывает, третий записывает результаты на диск. Когда какому-то из > процессов нечего делать, он просто ждет когда другой обеспечит его работой. > Как при такой схеме deadlock-то получиться?
deadlock-ов нет. Это одна из веток моих мыслей о принципах работы многопоточного кэша. А сама задача такая: Нужно сгенерировать 350 млн комбинаций. Из них половина - дубли. В итоге, меня интересуют только уникальные комбинации. То есть каждую комбинацию нужно найти среди ранее сгенерированных. На 400MB памяти я могу хранить где-то 10-11 млн комбинаций. Остальное, получается, выгружается на диск. Сейчас у меня на диск пишет тот поток, кому не хватило место в кэше. Пока он пишет, кэш заблокирован. То, что я пытаюсь родить, должно обеспечить безблокировочную работу кэша. То есть именно _нормальный_ выделенный третий поток который будет упреждающее разгружать кэш. Коваленко Дмитрий.

