2 zrj000za zrj000za 于 2016.03.28 16:12 提问

单线程与多线程效率差不多

场景:

    Server: springboot 开发的一个 web 项目

    client:使用 HttpClient 分别在单线程和多线程环境下测试某个模块的性能

问题:

   1.多线程和单线程效率基本没差别
     2.CPU使用率很低

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.28 16:16

(1)过度同步或者锁定,导致真正应该并发的地方并没有并发
(2)CPU不是瓶颈,作为瓶颈的资源并不能在多线程下得到改善
(3)程序本身存在bug,甚至都没有正确执行

chj4129
chj4129   2016.03.29 09:08

cpu使用率很低,多半是你测试方法的问题,建议你先使用单线程测试,先想办法使得测试过程中cpu沾满,然后测试多线程。

MASX627
MASX627   2016.03.31 14:07

先使用单线程测试,这种情况应该是测试方法存在问题或者程序本身存在问题甚至是根本没有执行,从而使得该并发的地方没有并发,多线程资源没有得到充分的释放。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
多线程复制文件比单线程慢?
Java多线程拷贝文件测试
多线程和单线程的执行效率问题
多线程和单线程的执行效率问题 转:平凡之路的博客 一提到多线程一般大家的第一感觉就是可以提升程序性能,在实际的操作中往往遇到性能的问题,都尝试使用多线程来解决问题,但多线程程序并不是在任何情况下都能提升效率,在一些情况下恰恰相反,反而会降低程序的性能。这里给出两个简单的例子来说明下: 程序1: import threading from time import ctime
多线程不能不知道的之单线程和多线程的比较
早期的计算硬件十分复杂,但是操作系统执行的功能确十分的简单。那个时候的操作系统在任一时间点只能执行一个任务,也就是同一时间只能执行一个程序。多个任务的执行必须得轮流执行,在系统里面进行排队等候。             例子1,你正在通过你的web浏览器查看一些精彩的文章,你需要把好的文章给下载下来,可能有些非常精彩的文章你需要收藏起来,你就用你的打印机打印这些在线的文章。在这里,浏览器一
Python中单线程、多线程和多进程的效率对比实验
Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下,不能发挥多核的优势。而使用多进程(Multiprocess),则可以发挥多核的优势真正地提高效率。对比实验  资料显示,如果多线程的进程是CPU密集型的,那多线程并不能有多少效率上的提升,相反还可能会因为线程的频繁切换,导致效率下降,推荐使用多进程;如果是IO密集型,多线程进
python多线程与单线程之间的差距
对于python多线程与单线程之间有多少差距呢?今天用一个小例子比较一下。 说明:爬取代理ip网站ip并用代理ip访问某网站,看执行后的用时多少。 单线程版 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup as bs import re import time def proxy_list(m
Redis到底是多线程还是单线程?
网上很多人认为Redis是单线程,但是根据其这么高的效率,然后用windows运行时查看任务管理器发现好像不止一个线程,所以求大神指点确认回答一下。 关注者 8 被浏览 3841 关注问题写回答 ​添加评论 ​分享 ​邀请回答 ​
测试单线程与多线程的操作效率
static void Main(string[] args)         {             //需要建立个计时器计算出单线程和多线程那个效率更高             Stopwatch sw = new Stopwatch();             ////1使用传统方式即单线程(实验证明此方法用了219毫秒)             //sw.Start();
多线程不一定比单线程快
1、TODO
多线程和单线程执行效率比较
单线程的也就是程序执行时,所跑的程序路径(处理的东西)是连续顺序下来的,必须前面的处理好,后面的彩绘执行到。  多线程嘛,举个例子也就是说程序可以同时执行2个以上相同类似的操作,比如一些搜索代理或者群发email的多线程软件,由于操作一次需要网络的返回信息 花的时间比较长,而对cpu来说却是空闲的,如果是一个一个顺序执行,那么搜索几千个IP就会花上好久好久。 而如果用多线程就可以在等待期间
谈单进程(单线程)与单进程(多线程)程序设计
本文单进程指单进程(单线程)模式;单线程也指单进程单线程;多线程指单进程(多线程模式),下同。   最近在B部门做项目,用到的平台框架都是基于单进程模式的,在以前的A部门做过的项目都是多线程模式的,在使用的过程中,也思考了一些问题,引发了对这两种类型的线程的对比和自己的一些看法(仅是个人观点)。 先讲下单进程模式和多线程模式的优劣: 1.单进程开发简单;多线程开发复杂 2.单进程在处理高