如果能算上超线程 Intel的E5 V2系列最高能达到12核心 24线程
民用最高是8核 AMD FX系列CPU
超线程的话 Intel 有6核12线程的
腾讯的服务端是由很多服务器进行计算的 而不是一台机器楼主你好,cup的多线程指的是真正意义上的可以同时运行的线程数,各线程并行运行。但是Java中的并发线程指的是在一个进程中分时复用cpu的资源,只是在宏观上看来是同时运行的,两者是有区别的。理论上java最大的并发线程没有数量上的限制,但是开启一个线程是很耗系统资源的,如果并发量太大就会导致系统资源不足而死机,所以我们一般会用线程池的技术来控制线程的数量,也可以提高并发的效率,如果感兴趣,你可以看看线程池相关的资料。多线程并不是越多越好,而是对服务器和对带宽都有要求,比如100M带宽的理论下载速度为125MB/S,你启动5个线程来下载,每个线程最多能下载25M/S的内容,启动10个线程,则每个线程最多能下载125M/S的内容,因为无法突破带宽的下行速率。另外还要看服务器响应给你的速度,比如服务器做了限制,每秒就给你100KB的速度,则你每个线程就只能接收100KB/S的下载内容。
下载的服务器一般不会固定,所以如果服务器响应的传输慢,可以适当提高线程数获取更多的下载内容,但是如果是服务器并发高,下载带宽被占满,理论上多个线程也有一定的效果,会挤压别人的下载速度,从而提高你的下载速度。
首先确认你是cpu密集型的还是io密集型的,
如果是cpu密集型的线程数可以设置到和cpu个数一致,
如果是io密集型的,首先需要确认你io wait的时间,线程数和io wait时间成正比, 具体需要根据测试得出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)