BlockingQueue在處理中斷時會根據(jù)不同的操作進行不同的處理:
對于put操作,如果線程在插入元素時被中斷,BlockingQueue會拋出InterruptedException異常,同時會將中斷狀態(tài)重新設(shè)置為true。
對于take操作,如果線程在獲取元素時被中斷,BlockingQueue也會拋出InterruptedException異常,同時會將中斷狀態(tài)重新設(shè)置為true。
因此,當使用BlockingQueue時,需要在調(diào)用put和take方法時捕獲InterruptedException異常,并進行適當?shù)奶幚怼Mǔ5奶幚矸绞绞窃诓东@InterruptedException異常后,重新設(shè)置中斷狀態(tài),或者將異常向上拋出,由上層調(diào)用者處理。