追踪这个多线程程序

时间:2018-02-27 13:40:52

标签: java locking

考虑这个课程:

data = json.dumps(slack_data)
    response = requests.post(
        URL, json={"text": data},
        headers={'Content-Type': 'application/json'}
    )

当一个线程调用thread1-调用方法blockingPut(),并假设被占用为假时,因此thread1首先获取SynchronizedBuffer对象上的监视器锁,然后它将被占用的值设置为true,然后它发出一个调用to displayState(),这是我不明白的地方。 当thread1想要执行方法displayState()的try-block中的第一个语句时,它怎么能再次锁定这个SynchronizedBuffer对象,虽然它在blockingPut()之前已被锁定?(同样的问题我有方法blockingGet()但是没有需要提一下,因为答案是一样的)

0 个答案:

没有答案