簡體   English   中英

C#和Java是否具有相同的同步問題/概念?

[英]Does c# and java have the same synchronization issues/concepts?

我只是在學習Java,我發現Java文檔/書籍非常強調同步。 我已經閱讀了很多C#文檔/書籍,而您對此主題的重視程度並不高。

C#處理鎖定/同步的方式是否不同,或者作為Web應用程序(應用程序池,iis,clr verus容器/ jvm / tomcat)的工作方式是否不同?

locksynchronized大致相同,盡管實現方式有所不同-特別是,在C#中,鎖定只是Monitor.Enter / Exit調用的語法糖,而在Java中沒有等效的庫。

C#沒有同步方法,盡管可以使用[MethodImpl(MethodImplOptions.Synchronized)]達到相同的效果。 (我認為有一些細微的差異,但是它們大致相同。)但是,我不建議在任何一種語言中都使用它-而是使用私有鎖。

.NET和Java中對其他並發庫的支持相距甚遠-Object.wait / notify / notifyAll和Monitor.Wait / Pulse / PulseAll的原語是相似的,但更高級別的支持卻大不相同。

內存模型有細微的不同-如果您不嘗試不鎖定就無法工作,那么它們就足夠接近了,但是正確的無鎖代碼在.NET和Java中會有所不同。

不太確定如何回答您的Web應用程序點...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM