Ситуация.
Есть 2 потока.
Один постоянно читает данные и заполняет однонаправленный список.
Второй считывает эти данные, пишет их в БД, а затем освобождает память от прочитанных элементов.
При достижении определённой скорости заполнения списка, второй поток не успевает освободить память. Что в конечном итоге приводит к полному её заполнению.
Как можно решить сложившуюся ситуацию?