这是我的代码
Log.e
首先我用0开始信号量,然后在第二个TextDigit(整数)到达9信号量释放后,此任务必须停止。但是当我使用Logcat
时,我可以在{{1}} secondTextDigit = 10和我的信号量= 1上看到。在这种情况下if语句如何工作并进入内部?我的逻辑错误在哪里?
(secondDigit是TextView。)
答案 0 :(得分:1)
您的初始if
语句会对此进行检查:
semaphore.availablePermits() == 0 && firstTextDigit <= 9 && secondTextDigit <= 9
这可能对secondTextDigit == 9
有效。
然后拨打secondTextDigit++
。如果secondTextDigit == 9
,则secondTextDigit
变为10。
最后,释放信号量的条件是secondTextDigit == 9
,如果secondTextDigit
为10,则会出现错误,并且卡住了。