0 0

关于java多线程与单线程的疑惑3

情景描述:

硬件环境:
  双cpu

  场景一:数据量10万,单个线程,将数据库里面的数据导入到文件 ,耗时3.5个小时


  场景二:数据量10万,10个线程,将数据库里面的数据导入到文件 ,耗时3个小时





请问下各位为什么场景一和场景二所用的时间差不多啊? 双cpu的话至少同一时间片有两个线程在跑吧,除去线程切换的时间,那也应该不需要3个小时啊!


问题补充:呵呵,不好意思,代码写错了,刚测试了一下,如果是10个线程的话就只要半个小时了,另外我想问下,是不是线程越多越好,到底根据什么来确定要开多少线程处理才合适?
chen_yongkai 写道
感觉是代码有问题,数据量10万,单线程也不用3.5个小时 这么多吧!
除非是有很复杂的处理流程?


问题补充:另外我还有个疑问,为什么我开100个线程和开10个线程cpu的利用率都是10%左右啊?
chen_yongkai 写道
感觉是代码有问题,数据量10万,单线程也不用3.5个小时 这么多吧!
除非是有很复杂的处理流程?

2012年4月25日 16:25

2个答案 按时间排序 按投票排序

0 0

把线程数降到4-6个试试。

2012年4月25日 19:04
0 0

感觉是代码有问题,数据量10万,单线程也不用3.5个小时 这么多吧!
除非是有很复杂的处理流程?

2012年4月25日 16:43

相关推荐

    java多线程与并发库高级处理.txt

    用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法...

    Java解惑 中文版

    3. **多线程编程**:Java提供了丰富的多线程支持。读者将学习到线程同步、并发工具类的使用,以及如何避免常见的并发问题。 4. **集合框架**:Java集合框架是存储和操作数据的关键。书中的内容将涵盖List、Set、Map...

    java编程思想练习答案 the think in Java Annotated Solution Guide

    7. **多线程**:Java提供了内置的多线程支持,包括Thread类和Runnable接口。答案中会有线程的创建、同步、通信以及线程池的使用。 8. **输入/输出流**:Java的I/O流系统涵盖了文件操作、网络通信等多种场景。解题将...

    Java中的多线程你只要看这一篇就够了

    用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法...

    thinging in java 第四版 英文版

    7. **多线程**:Java提供内置的多线程支持,书中讲解了线程的创建、同步、死锁等问题,帮助开发者理解并发编程的基本原理。 8. **输入/输出(I/O)**:介绍了Java的I/O流系统,包括文件操作、序列化、网络I/O等,这些...

    java解惑java解惑java解惑

    6. **多线程** - **Thread类和Runnable接口**:创建线程的两种方式。 - **同步机制**:synchronized关键字、 volatile变量和Lock接口,用于保证线程安全。 7. **I/O流** - **字节流与字符流**:理解和使用...

    Thing in Java\Thinking in Java 3rd Edition英文版,书后答案及代码

    7. **多线程**:Java内置对多线程的支持,允许在一个程序中同时执行多个任务,提升程序效率。 8. **泛型**:自Java 5引入,泛型提供了编译时类型安全,允许在容器中存储特定类型的元素。 9. **反射**:Java反射API...

    Java解惑

    并发编程在多线程环境下是Java开发者必须面对的挑战。理解synchronized、volatile关键字的作用,以及线程池的使用,能帮助我们编写出安全且高效的并发代码。另外,Java内存模型JMM(Java Memory Model)也需有所了解...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    JAVA解惑

    10. **多线程**:讲解线程的创建方式,同步机制,如synchronized关键字、wait()、notify()和notifyAll()方法。 11. **网络编程**:介绍Socket编程,包括TCP和UDP通信,以及服务器端和客户端的实现。 12. **反射**...

    JAVA 快速查询手册

    7. **多线程** - Thread类:创建和管理线程,实现`run()`方法定义线程任务 - Runnable接口:另一种创建线程的方式,避免单继承限制 - 线程同步:synchronized关键字和Lock接口防止数据竞争 8. **网络编程** - ...

    java+2+编程21天自学通

    同时,积极参与编程论坛,如Stack Overflow,可以获取更多学习资源和解答疑惑。 总之,《Java 2编程21天自学通》提供了一个系统且实用的学习路径,只要持之以恒,你将能在21天内建立起坚实的基础,为日后的Java开发...

    浅谈Java程序设计在线开放课程.zip

    例如,多线程使得程序可以同时执行多个任务,提高效率;网络编程则允许Java应用程序与其他系统进行通信;反射机制让程序在运行时可以动态地获取类的信息并调用方法。 对于在线开放课程,学习者可以按照自己的进度和...

    独立学院Java语言教学改革与实践研究.pdf

    考虑到Java语言的特点,如跨平台性、多线程机制和垃圾回收功能,课程设计应涵盖这些核心概念,并结合实际项目案例进行讲解,让学生在实践中掌握知识。 其次,教学模式需要创新,从传统的“以课堂为中心,以教师讲授...

    Thread线程的基础知识及常见疑惑点总结

    了解Thread类的基本概念和方法对于理解和使用Java多线程至关重要,这不仅有助于编写高效的并发程序,也有助于解决可能出现的并发问题。同时,熟悉这些基础知识也能更好地运用线程池和多线程框架,如ExecutorService...

    Java的怀疑。

    2. **类库与API**:Java标准库提供了丰富的API,如集合框架、I/O流、网络编程、多线程等,这些API极大地简化了复杂任务的实现。 3. **异常处理**:Java中的异常处理是通过try-catch-finally语句来实现的,这有助于...

Global site tag (gtag.js) - Google Analytics