新闻中心
新加坡2核4线程服务器
2020-03-24
阅读()
来源:互联数据

我以前有一台2核4线程的新加坡云主机,部署了网站,顺便还可以帮朋友挂一个网站。那新加坡免备案空间中,2核4线是什么意思?其实:一个核上,假如有三个线程A,B,C。每一个都跑1秒,等待2秒。显然,他们如果排队排的刚好就能把这个核心挤满了。2个的核就是*2=8个线程了。当然,实际情况不管有多少线程,都不能排除某个时刻所有线程都pending的情况。

2核4线程新加坡服务器

2核4线程等多线程服务器是什么?


大部分操作系统都支持多进程并发运行:你一边使用站长工具挖掘关键词,一边打开网页在查友商网站,同时还开着英雄联盟······还没完,每台电脑运行时还有大量的底层支撑性程序在后台运行······这些进程看上去像是在同时工作。真相是,对于一个CPU而言,他在某个时间点只能执行一个程序,即一个进程,其实CPU是不断地在这些进程间轮换执行的,由于执行速度相对人的感觉来说过快,所以我们感觉不到而已。


而我们要谈的多线程,则是多进程概念的扩展。操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。


1、线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但不拥有系统资源,它与父进程的其他线程共享该进程所拥有的全部资源。因为多个线程共享父进程里的全部资源,因此编程更加方便,但必须更加小心。


2、线程可以完成一定的任务,可以与其他线程共享父进程中的共享变量及部分环境,相互之间协调来完成进程所要完成的任务。线程是独立运行的,它并不知道进程中是否还有其他线程存在。线程的执行时抢占式的,也就是说,当前运行的线程在任何时候都可能被挂起,以便另外一个线程可以运行。


从逻辑角度来看,多线程存在于一个应用程序中,让一个应用程序中可以有多个执行部分同时执行,但操作系统无须将多个线程看作多个独立的应用,对多线程实现调度和管理以及资源分配。线程的调度和管理由进程本身负责完成。


2核4线程服务器优势


总结起来,使用多线程编程具有以下优点:


(1)进程之间不能共享内存,但线程之间可以,且十分容易


(2)系统创建进程是需要为该进程重新分配系统资源,但创建线程则代价小得多,因此使用多线程来实现多任务并发比多进程的效率高。


多线程的实际应用:


(1)一个浏览器必须能同时下载多个图片

(2)一个web服务器必须能同时相应多个用户请求

(3)Java虚拟机本身就在后台提供了一个超级线程来进行垃圾回收


一般来说,最容易实现和调试的写法是,你开一个线程专门读文件,一个线程专门写文件,然后你自己把所有的读写都queue进这两个线程里。剩下的,你的CPU有4个线程,你就开8个线程做计算。如果计算比读写文件慢的话,那理应100%占用CPU的。多线程主要作用是用来填补io,memory等长延时操作。

多线程服务器的劣势

多线程服务器的劣势:


1、是结构复杂,需要更多的晶体管逻辑,功耗会变大。

2、多线程会共享cache and tlb。 本来L1 cache就捉襟见肘,多一个线程就多分走一份。


对于一般的desktop/server应用单核双线程是最经济的配置。2核4线程已经足够大部分中小网站运营, 4,8线程的处理器都是在一些特殊应用场景(e,g,包处理,high throughput,io intensive)需要程序员去fine tuning才能发挥最佳效能。


相关阅读