日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

并行搜索

發(fā)布時間:2025/4/5 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 并行搜索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1 并行搜索
      • 1.1 并發(fā)的基本概念
      • 1.2 并行搜索

1 并行搜索

1.1 并發(fā)的基本概念

所謂并發(fā)是在同一實體上的多個事件同時發(fā)生。并發(fā)編程是指在在同一臺計算機上“同時”處理多個任務。

要理解并發(fā)編程,我們必須要理解如下一些基本概念:

  • 計算機就像一座工廠,時刻在運行,為人類服務。它的核心是 CPU,它承擔了所有的計算任務,就像工廠的一個現(xiàn)場指揮官。
  • 進程就像工廠里的車間,承擔“工廠”里的各項具體的“生產(chǎn)任務”,通常每個進程對應一個在運行中的執(zhí)行程序,比如,QQ 和微信運行的時候,他們分別是不同的進程。

因為特殊原因,現(xiàn)場指揮官人才短缺,整個工廠只有一個指揮官,一次只能指導一個車間生產(chǎn),而所有的車間都必須要有現(xiàn)場指揮官在場才能生產(chǎn)。也就是說,一個車間開工的時候,其他車間都必須停工。

背后的含義:任一時刻,單個 CPU 一次只能運行一個進程,此時其他進程處于非運行狀態(tài)。

一個車間(進程)可以包括多條生產(chǎn)線,線程就好比車間(進程)里的生產(chǎn)線。所有生產(chǎn)線(設備和人)都屬于同一車間的資源,受車間統(tǒng)一調(diào)度和調(diào)配,并共享車間所有資源(如空間或洗手間)。

背后的含義:一個進程可以擁有多個線程,每個線程可以可以獨立并行執(zhí)行,多個線程共享同一進程的資源,受進程管理。

1.2 并行搜索

理解了以上這些概念后,我們接下來再繼續(xù)講解并行搜索的概念:

  • 假設我們要從很大的一個無序的數(shù)據(jù)集中進行搜索,假設我們的機器可以一次性容納這么多數(shù)據(jù)。從理論上講,對于無序數(shù)據(jù),如果不考慮排序,已經(jīng)很難從算法層面優(yōu)化了。而利用上面我們提到的并行處理思想,我們可以很輕松地將檢索效率提升多倍。具體實現(xiàn)思路如下:將數(shù)據(jù)分成 N 個塊,每個塊由一個 線程來并行搜索。

創(chuàng)建線程的演示代碼:

#include <Windows.h> #include <stdio.h> #include <iostream> #include <time.h>#define TEST_SIZE (1024*1024*200) #define NUMBER 20DWORD WINAPI ThreadProc(void* lpParam) {for (int i = 0; i < 5; i++) {printf("進程老爸,我來了!\n");Sleep(1000);}return 0; }int main(void) {DWORD threadID1;//線程 1 的身份證HANDLE hThread1;//線程 1 的句柄DWORD threadID2;//線程 2 的身份證HANDLE hThread2;//線程 2 的句柄printf("創(chuàng)建線程... ... \n");//創(chuàng)建線程 1hThread1 = CreateThread(NULL, 0, ThreadProc, NULL, 0, &threadID1);//創(chuàng)建線程 2hThread2 = CreateThread(NULL, 0, ThreadProc, NULL, 0, &threadID2);WaitForSingleObject(hThread1, INFINITE);WaitForSingleObject(hThread2, INFINITE);printf("進程老爸歡迎線程歸來!\n");system("pause");return 0; }

并行搜索的演示代碼:

#include <Windows.h> #include <stdio.h> #include <iostream> #include <time.h>#define TEST_SIZE (1024*1024*200) #define NUMBER 20typedef struct _search {int* data;//搜索的數(shù)據(jù)集size_t start; //搜索的開始位置size_t end; //搜索的終止位置size_t count; //搜索結(jié)果 }search;DWORD WINAPI ThreadProc(void* lpParam) {search* s = (search*)lpParam;time_t start, end;printf("新的線程開始執(zhí)行...\n");time(&start);for (int j = 0; j < 10; j++) {for (size_t i = s->start; i <= s->end; i++) {if (s->data[i] == NUMBER) {s->count++;}}}time(&end);printf("查找數(shù)據(jù)所花時間: %lld\n", end - start);return 0; }int main02(void) {int* data = NULL;int count = 0;//記錄的數(shù)量int mid = 0;search s1, s2;data = new int[TEST_SIZE];for (int i = 0; i < TEST_SIZE; i++) {data[i] = i;}mid = TEST_SIZE / 2;s1.data = data;s1.start = 0;s1.end = mid;s1.count = 0;s2.data = data;s2.start = mid + 1;s2.end = TEST_SIZE - 1;s2.count = 0;DWORD threadID1;//線程 1 的身份證HANDLE hThread1;//線程 1 的句柄DWORD threadID2;//線程 2 的身份證HANDLE hThread2;//線程 2 的句柄printf("創(chuàng)建線程... ... \n");//創(chuàng)建線程 1hThread1 = CreateThread(NULL, 0, ThreadProc, &s1, 0, &threadID1);//創(chuàng)建線程 2hThread2 = CreateThread(NULL, 0, ThreadProc, &s2, 0, &threadID2);WaitForSingleObject(hThread1, INFINITE);WaitForSingleObject(hThread2, INFINITE);printf("進程老爸歡迎線程歸來!count: %d\n", s1.count + s2.count);system("pause");return 0; }int main(void) {int* data = NULL;int count = 0;//記錄的數(shù)量data = new int[TEST_SIZE];for (int i = 0; i < TEST_SIZE; i++) {data[i] = i;}time_t start = 0, end = 0;//記錄開始和結(jié)束的時間戳time(&start);for (int j = 0; j < 10; j++) {for (int i = 0; i < TEST_SIZE; i++) {if (data[i] == NUMBER) {count++;}}}time(&end);printf("查找數(shù)據(jù)所花時間: %lld, count: %d\n", end - start, count);system("pause");return 0; }

參考資料:

  • C/C++從入門到精通-高級程序員之路【奇牛學院】
  • 總結(jié)

    以上是生活随笔為你收集整理的并行搜索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美黑人多人双交 | 成人免费视频国产免费 | 美女又黄又免费的视频 | 久久精品久久久精品美女 | 国产精品久久久久久亚洲毛片 | 国产依人 | 成人三级视频 | 中文字幕一区二区三区门四区五区 | 久久综合九色综合欧美狠狠 | 丰满肥臀噗嗤啊x99av | 久草视频在线播放 | 伦理片波多野结衣 | 欧美日韩成人免费 | 久久综合一区 | 精品国产一二三 | 妞妞av| 你懂的视频在线播放 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | 天天干狠狠爱 | 免费插插视频 | fc2ppv色の美マンに中出し | free性中国hd国语露脸 | 日韩欧美字幕 | 日韩视频一区在线 | 高清中文字幕 | 亚洲天堂男人av | 九九精品视频在线 | 成年人的黄色片 | 人妖一级片 | 亚洲激情视频小说 | 成长快手短视频在线观看 | 亚洲精品网站在线观看 | 97se视频| 亚洲一区二区自偷自拍 | 青青草激情视频 | 最全aⅴ番号库 | 粉嫩久久99精品久久久久久夜 | 国产精品传媒麻豆hd | 丝袜美腿一区二区三区 | 欧美精品自拍偷拍 | 人妻丝袜一区二区三区 | 天天天天 | 国产午夜精品久久久久 | 亚洲精品乱码久久久久99 | 99精品中文字幕 | 日韩一区在线免费观看 | 波多野吉衣一二三区乱码 | 亚洲欧美强伦一区二区 | jzz国产| 成人一区三区 | 催眠调教后宫乱淫校园 | 国产一级在线免费观看 | 国产在线视视频有精品 | h在线网站 | 性色视频在线观看 | 爱爱激情网 | 国产激情视频一区二区 | 免费黄色av网站 | 91美女诱惑 | 精品一区二区在线播放 | 国产综合av | 99久久久无码国产精品衣服 | 精品中文字幕视频 | 日本a级大片 | 天天躁日日躁狠狠躁av麻豆男男 | 99综合色 | 99热6这里只有精品 三级av在线免费观看 | 欧美精品一区在线发布 | 男人懂得网站 | 扒开腿揉捏花蒂h | 天堂久久精品忘忧草 | 国产精品免费在线 | 午夜精品久久久内射近拍高清 | 神马午夜电影一区二区三区在线观看 | 99在线精品视频免费观看20 | 日韩成人av一区二区 | 成人在线观看91 | av官网在线观看 | 久久这里只有 | 综合另类| 亚洲成人一区 | 黄色一级大片在线免费看产 | 成人91 | 淫语对白 | 在线观看网页视频 | 黄色裸体网站 | 国产第一页在线播放 | 免费 成 人 黄 色 | 香蕉av777xxx色综合一区 | 国产天天综合 | 国产精品一区二区入口九绯色 | 成年人视频在线观看免费 | 午夜黄色影院 | 手机成人av在线 | 欧美日韩在线视频观看 | 波多野结衣潜藏淫欲 | 一本一道av无码中文字幕 | 在线91视频 | 中文在线观看视频 |