2016-10-16 4 views
-3

В .NET framework, System.Threading.Semaphore является IDisposable, для которого требуется вручную dispose. Однако в JavaSE java.util.concurrent.Semaphore не является Closeable или AutoCloseable.Почему C# System.Threading.Semaphore реализует IDisposable и почему не работает java.util.concurrent.Semaphore Closeable?

Почему они выбирают другой дизайн API? Какая из них лучше?

+1

Семафор Java не закрывается, потому что закрыться нечем. Но мне любопытно, как это работает в .NET. – shmosel

+0

Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что он касается дизайна API и был скопирован на https://programmers.stackexchange.com/questions/333748 –

ответ

2

Это вопрос дизайна. В этом случае не существует «лучшего». Одна команда предпочла использовать шаблон Disposable при инкапсуляции функций API (что имеет смысл в большинстве случаев). Другая команда этого не сделала.

Смежные вопросы