国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

并行搜索,分而治之的思想

Mr_houzi / 3155人閱讀

摘要:默認值是小于的,所以如果大于就證明取到了數據如果設置失敗,證明其他線程已經找到了按照線程數進行分組大概思想邏輯對該段下面的解釋假設數組里有個數字,那么第一輪循環提交一個線程執行到的數據第一輪循環完后,開始執行第二輪第二輪循環,最終等于

public class ConcurrentSearch {

static int[] arr;
static ExecutorService pool = Executors.newCachedThreadPool();
static final int Thread_Num = 2;
static AtomicInteger result = new AtomicInteger(-1);

public static int search(int searchValue,int begin,int end){
    int i=0;
    for(i=begin;i0){//默認值是小于0的,所以如果大于0就證明取到了數據
            return result.get();
        }
        if(arr[i]==searchValue){//如果設置失敗,證明其他線程已經找到了
            if(!result.compareAndSet(-1,i)){
                return result.get();
            }
            return i;
        }
    }
    return -1;
}


public static class SearchTask implements Callable{
    int begin,end,searchValue;

    public SearchTask(int begin, int end, int searchValue) {
        this.begin = begin;
        this.end = end;
        this.searchValue = searchValue;
    }

    @Override
    public Integer call() throws Exception {
        int re = search(searchValue,begin,end);
        return re;
    }
}


public static int pSearch(int searchValue) throws ExecutionException, InterruptedException {
    int subArrSize = arr.length/Thread_Num+1;//按照線程數進行分組
    List> re = new ArrayList<>();
    /**大概思想邏輯
     * 對該段下面for的解釋
     * 假設arr數組里有20個數字,那么subArrSize=11
     * 第一輪循環end=11;
     * 提交一個線程執行index0到11的數據
     * 第一輪循環完后,i=11 i<20
     * 開始執行第二輪
     * 第二輪循環end=22,最終等于19
     * 所以第二輪執行 index 11 19
     * 完了之后i=22所以不存在第三輪循環
     */
    for(int i = 0;i=arr.length){
            end =arr.length;
        }
        re.add(pool.submit(new SearchTask(searchValue,i,end)));
    }
    for(Future fu:re){
        if(fu.get()>=0){
            return fu.get();
        }
    }
    return -1;
}
public static void main(String[] args) {

}

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74788.html

相關文章

  • 算法系列——算法入門之遞歸分而治之思想實現

    摘要:簡單算法之遞歸我向算法工程師請教如何學好算法,他跟我提議說先看懂漢諾塔,這是一個小朋友都會玩的游戲,里面用到了遞歸的思想。遞歸實現倒計時函數下面這個倒計時函數使用了遞歸,而且使用了尾遞歸優化。 前端需要算法嗎? 別想太多,肯定要!!! 什么是算法 你以為的算法是各種排序,選擇排序、快速排序、歸并排序,廣深搜索、動態規劃...... 然而,算法實際上指的是解決某個實際問題的方法。 解決同...

    or0fun 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<