В моем приложении-сервере (написанном на C#) мне нужно создать пул того же типа объектов. Я извлекаю объект из пула, когда мне нужно, и он возвращается в пул, когда он больше не нужен. Механизм должен быть потокобезопасным, поскольку различные потоки будут запрашивать и отправлять эти объекты. Я понимаю, что часто блокирование чего-то, чтобы сделать потокобезопасное, отрицательно сказывается на производительности приложения. Можете ли вы предложить дизайн, в котором я могу даже избежать явных блокировок?Как создать потокобезопасный пул объектов?
Пожалуйста, можете ли вы предложить способ, которым я могу выполнить выше? Возможность изменять размер пула (создавать дополнительные, если работает без объектов) будет отличным дополнением.
Заранее спасибо ...
НЕ пытайтесь избежать явных блокировок до тех пор, пока вы не получите ДОКАЗАТЕЛЬСТВО, что блокировки являются # 1 причиной UNACCEPTABLE производительности. Замки в подавляющем большинстве случаев невероятно быстрые, и если ваши блокировки медленные, то шансы хорошие, у вас есть глубокая проблема дизайна в вашем приложении. Помните, что блокировки только медленны * в условиях конкуренции *, и если у вас много споров, * вы, вероятно, делаете что-то неправильно. * –