深圳建设管理中心网站首页,邢台信息港人力资源,公司建站方案,静态网站做新闻系统本博文源于笔者正在学习的c语言。学习如何用多线程进行检索数据。这里以检索一个数组的数据为例#xff0c;给出代码#xff0c;并分析如何进行线程通信#xff0c;如果检索到#xff0c;其余就别检索了。 文章目录 问题来源问题解决方案代码实现效果总结 问题来源
想要用…本博文源于笔者正在学习的c语言。学习如何用多线程进行检索数据。这里以检索一个数组的数据为例给出代码并分析如何进行线程通信如果检索到其余就别检索了。 文章目录 问题来源问题解决方案代码实现效果总结 问题来源
想要用多线程检索数据
问题解决方案
#define _CRT_SECURE_NO_WARNINGS
#includeWindows.h
#includestdio.h
#includestdlib.h
#includeWindows.h
#includetime.h
#includeprocess.h
int isfind 0;
struct findinfo {int *pstart;int length;int findnum;int id;
};void findit(void *p) {struct findinfo *ps p;printf(\n线程%d开始查找, ps-id);for (int *pf ps-pstart; pf ps-pstart ps-length; pf) {if (isfind 1) {printf(\n线程%d结束查找,其他线程已经找到, ps-id);return;}if (*pf ps-findnum) {printf(线程%d,数据%d,地址%p, ps-id, *pf, pf);isfind 1;return;}}printf(\n线程%d,结束查找, ps-id);}
void main() {int a[10] { 86,53,25,12,10,11,18,5,3,4 };for (int i 0; i 10; i) {printf(%d , a[i]);}printf(\n想要查找的数据是:);int num;scanf(%d, num);struct findinfo info[10];for (int i 0; i 10; i) {info[i].pstart a 10 * i;info[i].length 10;info[i].id i;info[i].findnum num;_beginthread(findit ,0, info[i]);}getchar();getchar();
}代码实现效果 总结
这段代码效果通过全局变量作为线程通信的变量实现了查找成功就不让其他线程查找了。值得收藏借鉴。