中断机制是使用称为中断状态的内部标志来实现的。调用Thread.interrupt设置此标志。当线程通过调用静态方法Thread.interrupted来检查中断时,中断状态将被清除。一个线程用于查询另一个线程的中断状态的非静态isInterrupted方法不会更改中断状态标志。按照约定,任何通过抛出InterruptedException退出的方法都会清除中断状态。这是对应的Javadoc
java.lang.Thread public static boolean
因此,我在Prolog中有以下工作代码,它生成给定值A的阶乘:factorial(A,B) :- A>0, C is A-1, factorial(C,D), B is我把它理解为:(A,B)的阶乘是真的,如果A>0,C是A-1,阶乘(C,D),B是A*D,这在我听起来不太正确.是吗?
"A > 0“。所以如果A等于0,会发生什么?