gpt4 book ai didi

c# - 从 Java 到 C#,线程结构的差异

转载 作者:行者123 更新时间:2023-12-01 17:31:04 24 4
gpt4 key购买 nike

我已经从 java 转向 C#,并且对 wait() 和 sleep() 感到困惑。在java中, sleep 不会删除对象的锁,并且在 sleep 完成后线程重新开始工作,并且在等待的情况下,它确实会删除对象的锁并允许其他线程访问该对象一段时间。

这在 C# 中也是如此还是有什么区别?

最佳答案

是的,在 C# 中也是如此。大多数情况下,Java 中的 Thread.sleepObject.waitObject.notifyObject.notifyAll与 .NET 中的 Thread.SleepMonitor.WaitMonitor.PulseMonitor.PulseAll 密切对应。

我预计公平性等细节上会存在一些差异,但基本原理是相同的。

但是,您应该很少在现代代码中使用这些低级抽象,无论是在 Java 还是 C# 中 - 在 Java 中,在 java.util.concurrent 和 .NET 中使用更高级别的抽象如果可以的话(并且如果您使用的是 .NET 4),请尝试使用 Task 抽象。特别是,使用 Task 将使您为 C# 5(和 WinRT)中的异步盛宴做好准备。

关于c# - 从 Java 到 C#,线程结构的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com