【已解决】C语言实现多线程检索数据

这篇具有很好参考价值的文章主要介绍了【已解决】C语言实现多线程检索数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本博文源于笔者正在学习的c语言。学习如何用多线程进行检索数据。这里以检索一个数组的数据为例,给出代码,并分析如何进行线程通信,如果检索到,其余就别检索了。

问题来源

想要用多线程检索数据

问题解决方案

#define _CRT_SECURE_NO_WARNINGS
#include<Windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<time.h>
#include<process.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();
}

代码实现效果

【已解决】C语言实现多线程检索数据,课外学习cpp,c语言,算法,开发语言

总结

这段代码效果,通过全局变量作为线程通信的变量,实现了,查找成功就不让其他线程查找了。值得收藏借鉴。文章来源地址https://www.toymoban.com/news/detail-797396.html

到了这里,关于【已解决】C语言实现多线程检索数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入学习MYSQL-数据检索

    前言 由于大部分基础知识都已经学过了,这里只把觉得应该记录一下的知识点做个笔记。然后以下笔记和sql均来自书籍(MYSQL必会知识),会根据看的其它书记继续调整和优化笔记。 LIMIT 注:这个平时的SQL查询没有什么区别,我主要展示一下在命令行里面怎么展示结果。 总共8条

    2024年02月05日
    浏览(26)
  • cpp多线程(二)——对线程的控制和锁的概念

    这篇文章是笔者学习cpp多线程操作的第二篇笔记,没有阅读过第一篇的读者可以移步此处: Cpp多线程(一)-CSDN博客 如果读者发现我的文章里有问题,欢迎交流哈!   一、如何控制线程呢? c++11在std::this_thread名称空间(显然,这是一个嵌套在大名称空间里的小名称空间)内

    2024年01月20日
    浏览(24)
  • 基于数据库的全文检索实现

    对于内容摘要,信件内容进行全文检索 基于SpringBoot 2.5.6+Postgresql+jpa+hibernate实现 登记保存之后,处理完成业务逻辑,发送全文检索事件 处理业务发送全文检索事件 统一处理全文检索事件 sql大致就是这样的逻辑 事件处理机制请看另一篇文章 自定义事件处理机制

    2024年03月12日
    浏览(40)
  • TabR:检索增强能否让深度学习在表格数据上超过梯度增强模型?

    这是一篇7月新发布的论文,他提出了使用自然语言处理的检索增强 Retrieval Augmented 技术,目的是让深度学习在表格数据上超过梯度增强模型。 检索增强一直是NLP中研究的一个方向,但是引入了检索增强的表格深度学习模型在当前实现与非基于检索的模型相比几乎没有改进。

    2024年02月14日
    浏览(27)
  • 数据安全之数据库字段加解密检索和前端返回脱敏?看看我这个最强解决方案

    数据安全一直是我们老生常谈的话题了,随着国产化的日渐推进和数字化信息改革,数据安全越来越被人们所重视。数据库作为存储、管理和检索数据的核心基础设施,其中可能包含着大量的敏感信息,如个人手机号、身份证号码、银行账户、家庭地址等信息。为了保障这些敏

    2024年02月13日
    浏览(36)
  • 向量数据库入坑:传统文本检索方式的降维打击,使用 Faiss 实现向量语义检索

    在上一篇文章《聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss》中,我们有聊到如何快速入门向量检索技术,借助 Meta AI(Facebook Research)出品的 faiss 实现“最基础的文本内容相似度检索工具”,初步接触到了“语义检索”这种对于传统文本检索方式具备“降维打击”的新

    2024年02月16日
    浏览(29)
  • 使用FlinkCDC从mysql同步数据到ES,并实现数据检索

    随着公司的业务量越来越大,查询需求越来越复杂,mysql已经不支持变化多样的复杂查询了。 于是,使用cdc捕获MySQL的数据变化,同步到ES中,进行数据的检索。 springboot集成elasticSearch(附带工具类)

    2024年04月13日
    浏览(25)
  • 向量数据库:usearch的简单使用+实现图片检索应用

    usearch是快速开源搜索和聚类引擎×,用于C++、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang和Wolfram 🔍中的向量和🔜字符串× 一个简单的例子(注:本例子在运行时向index中不断添加项目,并将最后的index持久化为一个文件,在运行时由于添加项目内存占用会不断增

    2024年02月02日
    浏览(33)
  • 【C语言】多线程基本实现

    在串口助手编程中,-k命令下需要实现等待接收message的同时可以发送键入message。但是,键入message使用的fgets()函数如果得不到键入就会一直等待,无法继续接收message,考虑采用多线程实现有键入则发送,否则一直等待接收message。 计算机的核心是CPU,承担所有的计算任务。

    2024年02月05日
    浏览(26)
  • 大规模数据量下ES如何实现高性能检索?

    ElasticSearch,是基于Lucene库的搜索引擎。它提供了一个分布式、多租户的全文搜索引擎,具有HTTP web接口和无模式JSON文档。根据DB引擎排名,Elasticsearch是最受欢迎的企业搜索引擎。ES的特点是分布式、高扩展以及近实时。那么,大规模数据量下ES是如何实现高性能检索的呢? 说

    2024年02月16日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包