我无法用if语句停止线程

时间:2018-04-12 10:12:01

标签: java multithreading if-statement semaphore

这是我的代码

Log.e

首先我用0开始信号量,然后在第二个TextDigit(整数)到达9信号量释放后,此任务必须停止。但是当我使用Logcat时,我可以在{{1}} secondTextDigit = 10和我的信号量= 1上看到。在这种情况下if语句如何工作并进入内部?我的逻辑错误在哪里?
(secondDigit是TextView。)

1 个答案:

答案 0 :(得分:1)

您的初始if语句会对此进行检查:

semaphore.availablePermits() == 0 && firstTextDigit <= 9 && secondTextDigit <= 9

这可能对secondTextDigit == 9有效。

然后拨打secondTextDigit++。如果secondTextDigit == 9,则secondTextDigit变为10。

最后,释放信号量的条件是secondTextDigit == 9,如果secondTextDigit为10,则会出现错误,并且卡住了。