14

これら 2 つのキーワードの効果はまったく同じですか、それとも注意すべき点はありますか?

4

3 に答える 3

10

このサイトによると: http://en.csharp-online.net/CSharp_FAQ:_What_is_the_difference_between_CSharp_lock_and_Java_synchronizedによると、C#lockと Javaのsynchronizedコード ブロックは「意味的に同一」ですが、メソッドの場合、Java はsynchronizedC# が属性を使用している間に使用します[MethodImpl(MethodImplOptions.Synchronized)]

于 2008-10-20T07:25:05.117 に答える
5

Keegによって投稿されたリンクでカバーされていない興味深い違いの 1 つ: 私の知る限り、 .NET のMonitor.EnterおよびMonitor.Exitに対する Javaの同等のメソッド呼び出しはありません。つまり、Monitor.TryEnterに相当するものも実行できません。もちろん、java.util.concurrent.locks パッケージ (1.5 以降) には、より多くの機能を利用できるさまざまなロックがあります。lock

于 2008-10-20T07:32:24.103 に答える
-1

I java を使用すると、所有しているパブリック タイプのロックについて心配する必要はありません。

.NET では

更新: これは、所有しているタイプ用です。あなたが所有していない公開型をロックすることは、どの言語でも悪いことです:)

于 2008-10-20T08:08:57.290 に答える