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