2016-10-16 4 views
-3

.NET Frameworkでは、System.Threading.SemaphoreIDisposableであり、手動でdisposeが必要です。ただし、JavaSEでは、java.util.concurrent.SemaphoreCloseableでなく、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

デザインの問題です。この場合、本質的に「より良い」ものはありません。 1つのチームは、API関数をカプセル化するときにDisposableパターンを使用することを選択しました(これはほとんどの場合意味があります)。他のチームはそのようにはしませんでした。

関連する問題