Queue.Synchronized быстрее, чем при использовании Lock ()?

У меня есть очередь, в которой операция постановки в очередь будет выполняться одним потоком, а операция удаления из очереди - другим. Излишне говорить, что мне пришлось реализовать для него некоторую потокобезопасность.

Сначала я попытался использовать блокировку очереди перед каждой постановкой / удалением, так как это дает лучший контроль над механизмом блокировки. Это сработало хорошо, но мой любопытный ум заставил меня проверить еще кое-что.

Затем я попытался использовать оболочку Queue.Synchronized, сохранив все остальное без изменений. Я не уверен, правда ли это, но при таком подходе производительность кажется немного выше.

Как вы думаете, на самом деле есть какая-то разница в производительности между ними, или я просто воображаю здесь ...? :)

7
задан Tim Lloyd 27 January 2011 в 15:38
поделиться