是否有任何方法可以在不干擾整個流程的情況下停止部分流程?

我有一個對客戶ID進行迭代的for循環,還有一個process函數,它在相同的for循環中處理這些客戶。

Scenario:-

在執行for循環時,如果發現重復的客戶,那么我們應該檢查客戶的舊流程是否完成。如果完成了,那么我們必須等待。

在這里,我不想停止整個for循環的執行,因為可以處理具有不同id的其他客戶。

所以,是否有任何方法可以使用相同的for循環來停止正在等待特定客戶的流程的一部分,同時執行其他流程。

example

for(customer:customers)
{
 if(customer.isRepeated())
 {
  if(customer.inProcess())
   {
    wait();
   }
 }
 process(customer);

}

? 最佳回答:

對于您描述的問題,另一個答案中的multithreaded方法可能是理想的。但如果您想保持single-threaded,并在處理已準備好的客戶時推遲對尚未準備好的客戶的處理,那么這可能會起作用。

在這里,我們創建了另一個waitingCustomers列表,這是一個我們稱之為.wait()的客戶列表。當我們聯系到需要等待的客戶時,我們將其放在waitingCustomers列表中,而不是這樣做。然后我們重復整個代碼塊,直到waitingCustomers列表為空。

List<Customer> waitingCustomers = customers;
do {
    List<Customer> toProcess = waitingCustomers;
    waitingCustomers = new ArrayList<>();

    for(customer : toProcess) {
        if(customer.isRepeated() && customer.inProcess()) {
            waitingCustomers.add(customer);
        } else {
            process(customer);
        }
    }
} while (waitingCustomers.size() > 0)
主站蜘蛛池模板: 国产成人一区二区动漫精品 | 国产成人精品视频一区| 中文字幕Av一区乱码| 亚洲一区日韩高清中文字幕亚洲| 亚洲日本一区二区三区| 狠狠综合久久av一区二区| 无码精品人妻一区二区三区漫画 | 久久久无码一区二区三区| 午夜福利国产一区二区| 国产一区二区三区在线观看影院| 国产AV午夜精品一区二区入口 | 农村人乱弄一区二区| 日本v片免费一区二区三区| 99久久精品国产一区二区成人| 自慰无码一区二区三区| 伊人精品视频一区二区三区| 精品无码人妻一区二区三区不卡| 日本中文字幕在线视频一区| 日本国产一区二区三区在线观看| 久草新视频一区二区三区| 国产精品无圣光一区二区| 国产天堂一区二区综合| AV怡红院一区二区三区| 国模大尺度视频一区二区| 天堂Aⅴ无码一区二区三区| 国产亚洲一区区二区在线| 亚洲中文字幕无码一区二区三区| 亚洲色精品vr一区二区三区| 亚洲爆乳无码一区二区三区| 少妇激情一区二区三区视频| 3d动漫精品啪啪一区二区免费| 日韩毛片基地一区二区三区| 中文字幕精品一区二区2021年 | 精品一区二区三区中文| 人妻内射一区二区在线视频| 免费一区二区无码东京热| 亚洲天堂一区二区| 国模无码一区二区三区| 一区二区国产在线观看| 亚洲国产日韩一区高清在线| 97人妻无码一区二区精品免费|