我有一个c#代码,必须将其移植到java。 现在我遇到了我的话题中提到的这个指令。java中的“this.SynchronizingObject.Invoke()”的等价物
this.SynchronizingObject.Invoke((MethodInvoker)delegate()
{
// do my stuff
}, null);
现在我必须问在这里,我能做些什么来实现这个在java中。 java中是否有任何同步对象?
我有一个c#代码,必须将其移植到java。 现在我遇到了我的话题中提到的这个指令。java中的“this.SynchronizingObject.Invoke()”的等价物
this.SynchronizingObject.Invoke((MethodInvoker)delegate()
{
// do my stuff
}, null);
现在我必须问在这里,我能做些什么来实现这个在java中。 java中是否有任何同步对象?
做这样
SynchronizingObject synchronizingObject = new SynchronizingObject();
synchronized (synchronizingObject) {
change your synchronizingObject here
}
或
synchronized void changeSynchronizingObject(SynchronizingObject synchronizingObject){
change your synchronizingObject here
}
如果我们将synchronizingObject实例变量设置为private,则会更好。 –
首先,你应该了解synchronized关键字synchronized块,如果你是从C#的背景。这只是你在操作系统课程中学习的一个互斥体。现在为了实现你可以使用下面的代码段。
类型1
AnyObject anyObject = new AnyObject();
synchronized(anyObject) {
// your critical section code here
}
类型2
synchronized <return_type> function() {
//critical section
}
这种方法需要在该方法中被作为锁实现类的实例。
这应该是一些帮助。
Thx到目前为止。我已阅读关于synchronized关键字。但仅作为推荐的等效于c#的锁(this){}存根。 – icbytes
没有同步对象,但我们可以使用synchronized关键字将ant部分代码与任何Object同步。 –
'this.SynchronizingObject'是什么类型,它的'Invoke'方法是做什么的?我假设它在特定的线程上调用提供的委托,我假设,但答案取决于具体情况。 – gustafc
它只是一个实现自己的接口的类对象。被调用的方法基本上会执行http web请求并处理接收到的数据。 – icbytes