深入理解Java虚拟机--Java内存模型与线程(一)

一、概述

       现代计算机操作系统为了提高效率,让计算机同时去做几件事,如果不希望处理器在大部分时间里都处于等待其他资源的状态,就必须使用一些手段去把处理器的运算能力"压榨"出来,否则就会造成很大的浪费,而让计算机同时处理几项任务则是最容易想到、也是非常有效的"压榨"手段。

        除了充分利用计算机处理器的能力外,一个服务端同时对多个客户端提供服务则是另一个更具体的并发应用场景(也就是常说的高并发)。衡量一个服务性能的高低好坏,每秒事务处理数(TPS)是最重要的指标之一,它代表着一秒内服务端平均能相应的请求总数,而TPS值与程序的并发能力又有非常密切的关系。对于计算量相同的任务,程序线程并发协调的越有条不紊,效率自然就会越高;反之,线程之间频繁阻塞甚至死锁,将会大大降低程序的并发能力。

        Java语言和虚拟机提供了许多工具,把并发编程的门槛降低了不少。并且各种中间件服务器、各类框架都努力地替程序员处理尽可能多的线程并发细节,使得程序员在编码时能更关注业务逻辑,而不是花费大部分时间去关注服务会同时被多少人调用、如何协调硬件资源。

二、硬件的效率与一致性

        物理机遇到的并发问题与Java虚拟机中的情况有不少相似之处,其中物理机中有一个重要的复杂性来源是绝大多数的运算任务都不可能只靠"计算"就能完成,处理器至少要与内存交互,如读取运算数据,存储运算结果,这个I/O操作很难消除(无法仅靠寄存器来完成所有运算任务)。

 

 

 

你可能感兴趣的:(多线程,Java虚拟机)