Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “解除封锁”;持有;最初被封锁_Java_Simulation_Anylogic - Fatal编程技术网

Java “解除封锁”;持有;最初被封锁

Java “解除封锁”;持有;最初被封锁,java,simulation,anylogic,Java,Simulation,Anylogic,我需要先将“保持”锁定。然后在队列中有代理连接到保留时取消阻止 我试过两种方法: 方法1:使用属性中的选项设置它最初被阻止,然后我在“操作”中写道: if(queue.size()>0) { hold.unblock(); } 但它不起作用。我认为该函数不能改变选择。 因此,我尽量不选择“初始块”并在操作中写入: hold.initiallyblocked=true; if(queue.size()>0) { hold.unblock(); } 但它也没有做任何事情,货舱被堵住了 此外,

我需要先将“保持”锁定。然后在队列中有代理连接到保留时取消阻止

我试过两种方法: 方法1:使用属性中的选项设置它最初被阻止,然后我在“操作”中写道:

if(queue.size()>0)
{ 
hold.unblock();
}
但它不起作用。我认为该函数不能改变选择。 因此,我尽量不选择“初始块”并在操作中写入:

hold.initiallyblocked=true;
if(queue.size()>0)
{ 
hold.unblock();
}
但它也没有做任何事情,货舱被堵住了

此外,我尝试使用“get connection number”将队列中的代理数保存在变量中,然后使用if(getconnectionnubmer>0)取消阻止它。它不起作用


breifly,我想告诉你:如果队列中有代理,请取消阻止等待。如果队列为空,请阻止保留。而且它必须被初始阻止

如果您的唯一目标是在队列中至少有一个代理填充时取消阻止等待,那么您应该将代码放在队列块的输入端。。。显然,如果代理进入队列,则表示队列不是空的:

hold.unblock();
以及在队列的“打开”出口部分,以在队列为空时阻止保留:

if(self.size()==0)
    hold.block();

谢谢你的回答,当我放置if(self.size()==0)hold.block()时,它起作用了;在“存在时打开”中,而不是在“存在时打开”中。再次感谢。。这取决于您是想在代理退出之前还是在代理退出之后阻止。。。您没有指定:)