热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java开多线程,反而变慢,请教高手?

先需要查询一条数据,而这条数据包含很多种数据,所以在查询里面,就需要分别查询包含的数据,然后再组装数据。以前是一个一个的查询,然后再组装,所以我就在此开了3个线程,同时查询数据,然后等到数据查询完后进
先需要查询一条数据,而这条数据包含很多种数据,所以在查询里面,就需要分别查询包含的数据,然后再组装数据。以前是一个一个的查询,然后再组装,所以我就在此开了3个线程,同时查询数据,然后等到数据查询完后进行组装,我感觉有性能提升,但是验证结果却是变慢了,这是怎么回事?请教高手。

17 个解决方案

#1


数据库执行的慢

#2


我要是说是你代码的问题你能给我分嘛?
嘿嘿,问的太笼统了,怎么回答呢?

#3


java开3个线程执行查询,到数据库是不是也是多线程查询的呢,即使数据库是多线程执行了,还得看数据库的具体情况,因为一般而言,多线程性能提升也是在原先单线程执行有资源浪费比如等待等等的情况下

#4


或未充分利用现有资源的情况下

#5


代码也没有如何分析?

#6


线程切换也是要消耗资源的,数据库频繁开关连接也是要消耗资源的。

#7


引用 6 楼 x19881216 的回复:
线程切换也是要消耗资源的, 数据库频繁开关连接也是要消耗资源的。

#8


数据库的查询也会浪费时间的 线程的切换也会费时间
可能是这些时间加起来比原来的多了呢

#9


因为你只有一个 CPU,充其量也只是两个蛋黄,最多也就能支持两个线程。

况且,数据库操作并不是 CPU 密集型的操作,它是 IO 密集型的操作,因此使用多线程不能提高性能!

#10


一般而言 IO 操作,特别是磁盘操作,只有一个磁头,使用多线程也是白搭,甚至会使性能降低,因为多个线程操作会导致磁头频繁地移动,不停地在寻道。

#11


同意楼上

#12


如果楼主原先的单线程数据库查询均涉及复杂的运算和磁盘搜索,那么当是在主要消耗在cpu操作时,多线程方式同时执行磁盘操作,就会充分利用资源了而不浪费资源进而提高效率了

#13


多重查询 或 存储过程

#14


楼主,你先把代码贴出来,我帮你分析一下。

#15


连接数据库要耗损很多很多资源.比你想象中大得多

#16


引用 8 楼 mengxiangyue 的回复:
数据库的查询也会浪费时间的 线程的切换也会费时间
可能是这些时间加起来比原来的多了呢

+1

#17


数据库连接很耗时间的,你还是不如一次连接一次一次的查完吧

推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了Java虚拟机中的垃圾收集器,包括年轻代收集器Serial收集器、ParNew收集器、Parallel Scavenge收集器,以及老年代收集器Serial Old收集器、Parallel Old收集器和CMS收集器。对每种收集器的算法和特点进行了详细解析,希望对读者有参考价值。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
author-avatar
徐晨程东_324
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有