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

資訊專欄INFORMATION COLUMN

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

Mr_houzi / 3147人閱讀

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

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){//默認(rèn)值是小于0的,所以如果大于0就證明取到了數(shù)據(jù)
            return result.get();
        }
        if(arr[i]==searchValue){//如果設(shè)置失敗,證明其他線程已經(jīng)找到了
            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;//按照線程數(shù)進(jìn)行分組
    List> re = new ArrayList<>();
    /**大概思想邏輯
     * 對該段下面for的解釋
     * 假設(shè)arr數(shù)組里有20個數(shù)字,那么subArrSize=11
     * 第一輪循環(huán)end=11;
     * 提交一個線程執(zhí)行index0到11的數(shù)據(jù)
     * 第一輪循環(huán)完后,i=11 i<20
     * 開始執(zhí)行第二輪
     * 第二輪循環(huán)end=22,最終等于19
     * 所以第二輪執(zhí)行 index 11 19
     * 完了之后i=22所以不存在第三輪循環(huán)
     */
    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) {

}

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/74788.html

相關(guān)文章

  • 算法系列——算法入門之遞歸分而治之思想實(shí)現(xiàn)

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

    or0fun 評論0 收藏0

發(fā)表評論

0條評論

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