比如我現(xiàn)在有10000條任務(wù)需要執(zhí)行,通過信號量SemaphoreSlim來實(shí)現(xiàn)控制20條線程并發(fā)。 在線程內(nèi)部是發(fā)送GET請求,由于目標(biāo)服務(wù)器上面有限制,可能會返回403,其中任意一條線程發(fā)現(xiàn)返回的狀態(tài)是403的時(shí)候進(jìn)行撥號換IP,現(xiàn)在問題就是怎么通知其他線程,我已經(jīng)換IP了,你們不用再換了,注意,通知的線程只是在這20次中的線程,后來的線程不做通知,因?yàn)榉?wù)器可能又限制了。 這個是我現(xiàn)在的做法,定義一個程序集變量,在線程內(nèi)部獲取這個變量_flag然后在異常塊判斷,這兩個值是否相等,不相等說明已經(jīng)更換IP了,那么重新執(zhí)行這個方法,如果相等則進(jìn)入lock塊再判斷是否更換IP,有點(diǎn)像單例。想請問一下是否還有更好的做法?
- 1 回答
- 0 關(guān)注
- 535 瀏覽
添加回答
舉報(bào)
0/150
提交
取消