标签:人做 value 本地 ogr ++ vol com 多线程 not
《深入理解Java虚拟机》 第12、13章
《Java 核心技术卷1》 第14章
《java 并发编程艺术》 通读
最大化来提高计算机的使用率
并发是指多个线程操作同一个资源,不是同时执行,而是交替执行,单核CPU,只不过因为CPU的时间片很短,速度太快,看起来是同时执行(张三、李四厨师,共用一口锅炒菜,交替执行)
并行才是真正的同时执行,多核CPU。每个线程使用一个单独的CPU的资源来运行(张三、李四厨师、一人一口锅,一起炒菜)
并发编程:是指允许多个任务在一个时间端内重复的执行的设计结构
并发示意图
并行示意图
高并发:我们设计的程序,可以执行海量的任务同时执行
互联网系统的架构中们如何提高系统的并发能力?
提升单机的处理能力
1、增强单机的硬件性能:增加CPU的核数、内存升级、磁盘扩容
2、提升系统的架构能力:使用Cache来提高效率
集群、分布式都是水平的扩展方案
集群:多个人做同一事(同时多顾几个厨师同时炒菜)
分布式:一个复杂的事情,拆分成几个简单的步骤,分别找不同的人去完成(1、洗菜 2、切菜 3、炒菜)
1、站点层扩容:通过Nginx反向代理,实现高并发的系统,将服务部署在多个服务器上
2、服务层扩容:通过RPC框架实现远程调用:Dubbo,Spring Clodud,将业务逻辑分拆成不同的RPC Client,
Clident完成各自的不同的业务,如果并发量比较大,新增加RPC Client
3:数据层扩容:一台数据库拆分成多态,分库分表,主从复制,读写分离
进程是计算机上正在执行的一个独立的应用程序,进程是一个动态概念,必须是进行状态。如果一个应用程序没有启动,那就不是进程:进程是资源的分配的基本单位(内存、进程ID(PID))
线程是组成进程的基本单位,可以完成特定的功能,一个进程是有一个后者多个线程组成的:线程是资源调度的单位
进程和线程的区别:
1、内存空间的区别:
进程是有独立的内存空间,每个进程之间是相互独立的,互不干扰,
线程有共享的内存空间(也有私有的)
2、安全性:进程是相互独立的,一个进程的奔溃不会影响到其他的进程,进程是安全的,
线程存在内存空间的共享,一个线程的奔溃可能会影响到其他的线程的执行。,线程的安全性不如进程
关系:进程是相互独立的,一个进程下可以有一个或者多个线程
Java中很少使用进程的概念,但也可以使用:
Java默认有几个线程呢?
(Main方法启动会对应启动一个JVM实例,Main也是Java的一个进程,也叫做主线程)
Java默认是有两个线程:主线程和垃圾回收的线程(Main和GC)
Java本身能否启动线程?
start方法来启动并创建出新线程:底层调用native的start0方法
Java本身是没办法启动线程的,线启动时需要底层操作系统支持的,Java通过调用本地方法,C++编写的动态函数库,由C++去操作底层启动线程,Java是通过间接的调用来启动线程
标签:人做 value 本地 ogr ++ vol com 多线程 not
原文地址:https://www.cnblogs.com/laurarararararara/p/12402129.html