Oma*_*eji 4 c# java cross-language code-translation
在Java中有没有办法获得一个方法来锁定(互斥)它所在的对象?
我知道这听起来令人困惑,但基本上我对C#的这个片段并不公平,但在Java中.
lock(this)
{
// Some code here...
}
Run Code Online (Sandbox Code Playgroud)
我的任务是将用.Net编写的API重新实现到Java中,并且我被要求保持Java版本尽可能与.Net版本类似.事实上,.Net版本看起来像是从我无法访问的C++版本转录而来的.
无论如何,上面的行出现在C#版本中,我需要在Java中做同样的事情.
Jon*_*eet 12
相当于:
synchronized (this)
{
}
Run Code Online (Sandbox Code Playgroud)
(不,你通常不应该在C#或Java中这样做.更喜欢锁定没有其他任何东西可以访问的私人引用.当然你可能已经知道了 - 但我不想留下答案没有警告:)
假设C++代码是一个简单的互斥锁,将"lock"替换为"synchronized"
synchronized (this)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
以下是Java Concurrency教程 以获取更多信息