`
zmty123
  • 浏览: 8171 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

多线程并发效率问题

阅读更多

项目中遇到一个并发性能的问题:

需要对3张表执行操作,3张表没有外键关系;执行操作都为查询--添加或更新。

最初设计为一个线程池,对3张表顺序操作。业务判断+数据库操作耗时在20-30毫秒;

后来我想3张表没什么关系,改成并行操作应该要效率要高点吧,于是就再写了2个相同的线程池,总共3个线程池,一个线程池执行一张表。

问题来了,我发现每一张表的业务操作耗时竟然比以前3张表业务判断+数据库操作时间还要高30-60毫秒;

我那个郁闷啊!并行居然比串行慢!

环境为32G内存、8CPU,hibernate+spring,声明式事务管理(自动提交),批量提交为100。

我想8CPU调度线程应该很快的,并且业务判断都是相同的,未作修改,耗时应当主要是出在数据库操作上。

我看mysql,一个线程池提交sql频率在1200-2000条/s,(好像是以秒为单位的)

改成3个线程池后居然很少能过1500条/s。

希望哪位大侠给点意见

分享到:
评论

相关推荐

    java 多线程并发实例

    在Java编程中,多线程并发是提升程序执行效率、充分利用多核处理器资源的重要手段。本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是...

    多线程并发处理的简单实现

    在编程领域,多线程并发处理是一种常见的优化技术,它能充分利用多核处理器的资源,提高程序的执行效率。在给定的标题“多线程并发处理的简单实现”中,我们可以深入探讨如何构建这样的系统。 首先,多线程并发处理...

    多线程并发处理数据的问题

    本篇文章将深入探讨多线程并发处理数据的相关知识点,以《多线程并发处理数据的问题》为主题,结合提供的文件名,如SmsSendClientBatchPool.java、SmsSendClientBatchNew.java、SmsSendClientBatch.java,我们可以...

    Tesseract OCR多线程并发识别案例

    在处理大量图像或需要快速响应时间的应用场景中,多线程并发识别可以显著提升效率。以下将详细介绍如何利用Tesseract OCR实现多线程并发识别,以及可能涉及的相关技术点。 首先,理解Tesseract OCR的基本工作原理是...

    Linux下基于socket多线程并发通信的实现.pdf

    在Linux下基于socket多线程并发通信的编程中,多线程并发具有的优势是可以减少CPU被大量占用,提高编程的效率和应用程序响应的速度,促进系统的程序结构进一步优化。在合理运用并发技术的情况下,可以同时完成多个...

    并发服务器-多线程服务器详解

    一种典型的多线程并发服务器架构如下: - **主监听线程**:负责接收客户端连接请求。 - **工作线程池**:由多个工作线程组成,负责处理具体的客户端请求。 **3. 示例代码片段** 下面是一个简单的多线程服务器示例...

    java多线程并发

    在现代软件开发中,特别是在Java这样的主流编程语言中,多线程并发技术是提高程序执行效率、优化资源利用的关键手段之一。本篇文章将深入探讨Java中的多线程并发机制,并通过具体的示例来帮助读者更好地理解和掌握这...

    多线程 高并发

    这里,我们主要探讨的是如何通过编写多线程并发程序来优化应用程序的性能,提高系统的处理能力。 首先,多线程是指在一个进程中同时执行多个线程。线程是操作系统调度的基本单位,它允许程序同时执行多个任务。多...

    JAVA多线程并发编程

    但同时,多线程并发也会引入一些问题,如数据竞争和同步问题。 为了解决这些问题,Java提供了多种同步机制。`synchronized`关键字用于控制对共享资源的访问,确保同一时间只有一个线程可以执行特定代码块,从而避免...

    C#使用读写锁三行代码简单解决多线程并发的问题

    总结来说,C#的ReaderWriterLockSlim类是解决多线程并发写入文件问题的有效工具。通过使用这个类,我们可以确保在多个线程访问同一文件时,文件的写入操作是有序且互斥的,从而避免数据的混乱和丢失。

    Python-Python3爬虫系列的理论验证比较同步依序下载多进程并发多线程并发和asyncio异步编程之间的效率差别

    本主题将深入探讨Python3中四种不同的并发模型:同步依序下载、多进程(multiprocessing)、多线程(multithreading)以及asyncio异步编程,并通过理论分析和实际案例对比它们之间的效率差异。 1. 同步依序下载: ...

    多线程并发执行任务

    多线程并发执行意味着多个线程在同一时间段内交替运行,提升了程序的执行效率。 在Java中,创建线程有两种主要方式: 1. 继承`Thread`类:创建一个新的类,该类继承自`java.lang.Thread`,然后重写`run()`方法。...

    java多线程和并发.pdf

    Java多线程与并发编程是Java语言中用于处理多任务执行的关键技术,它能够帮助开发者设计出能够有效应对高并发请求的应用程序。在现代的线上(Online)和离线(Offline)应用中,合理利用多线程技术可以大幅提高系统...

    mtc_多线程并发拷贝程序.zip_linux_research965_showacj_多线程并发_拷贝

    在当今的高性能计算领域,多线程并发技术已经成为提升程序效率的关键手段之一。本文将聚焦于一个名为"mtc_多线程并发拷贝程序.zip"的压缩包,其中包含了一个用于Linux系统的多线程并发拷贝工具。这个工具的开发旨在...

    多线程并发的demo

    在IT领域,多线程并发是提升程序性能和效率的重要技术。在现代计算机系统中,尤其是在服务器端的应用,如Web项目,多线程并发能够充分利用多核处理器的资源,实现任务并行处理,提高响应速度和服务质量。"多线程并发...

    多线程并发学习书籍

    在IT行业中,多线程并发编程是至关重要的一个领域,特别是在服务器端开发、大数据处理以及高性能计算中。这里提到的“多线程并发学习书籍”集合包含六本关于这一主题的专业书籍,覆盖了2012年至2018年的最新知识。...

    JDK5中的多线程并发库.doc

    在JDK5中,Java引入了一套强大的多线程并发库,极大地提升了多线程编程的效率和安全性。这个库提供了丰富的类和接口,使得开发者能够更好地控制线程的执行、同步和通信。 1. **线程** - **线程与进程的关系**:...

    qtconcurrent 多线程并发处理

    在编程领域,多线程并发处理是提升程序执行效率的关键技术之一。Qt库提供了一个强大的模块——qtconcurrent,使得开发者能够轻松地在Qt应用程序中实现多线程并行计算。本文将深入探讨qtconcurrent模块,以及如何在Qt...

    php多线程并发实现方法

    在了解PHP多线程并发实现方法之前,首先需要明白PHP语言本身并不是设计为支持传统意义上的多线程并发模型。PHP是一种主要用于Web开发的服务器端脚本语言,它通常以单线程的方式运行。每次有请求进入,PHP都会启动一...

    易语言websocket + WS+WSS+(WebSocket)+多线程并发稳定模块

    总的来说,这个压缩包提供了一套完整的解决方案,用于在易语言环境中开发WebSocket应用,并且考虑到了多线程并发处理的稳定性和效率。开发者可以根据提供的源码和说明,快速地构建自己的WebSocket服务或客户端程序,...

Global site tag (gtag.js) - Google Analytics