J2ee是一种规范,tomcat、jboss、weblogic就是实现。JMS是一种规范,ActiveMQ是实现。
.1.1. 进程介绍、线程介绍
进程:它是内存中的一段独立的内存空间。
线程:是在进程的独立运行空间中再划分的独立运行空间。
方法的空间是一样的,线程的局部变量是不一样的,不同线程调同一个方法,方法的空间是一样的,但是局部变量是不一样的。
Tomcat对每一个请求都开一个线程。
Cpu是对线程做时间切换(单核cpu或者多核cpu)。
一个应用程序就是一个进程。ps -ef可以看见的就是一个进程。有的程序启动会有多个进程,比如nginx。
一个进程中至少应该有一个线程。
启动程序的时候,其实是电脑把当前的这个程序加载到内存中,在内存中需要给当前的程序分配一段独立的运行空间。这片空间就专门负责当前这个程序的运行。不同的应用程序运行的过程中都需要在内存中分配自己独立的运行空间,彼此之间不会相互的影响。我们把每个独立应用程序在内存的独立空间称为当前应用程序运行的一个进程。进程:它是内存中的一段独立的空间,可以负责当前应用程序的运行。当前这个进程负责调度当前程序中的所有运行细节。
线程:是在进程的独立运行空间中再划分的独立运行空间。启动的QQ聊天软件,需要和多个人进行聊天。这时多个人之间是不能相互影响,但是它们都位于当前QQ这个软件运行时所分配的内存的独立空间中。在一个进程中,每个独立的功能都需要独立的去运行,这时又需要把当前这个进程划分成多个运行区域,每个独立的小区域(小单元)称为一个线程。线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间。进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行。
现在的操作系统基本都是多用户,多任务的操作系统。每个任务就是一个进程。而在这个进程中就会有线程。 真正可以完成程序运行和功能的实现靠的是进程中的线程。多线程:在一个进程中,我们同时开启多个线程,让多个线程同时去完成某些任务(功能)。(比如后台服务系统,就可以用多个线程同时响应多个客户的请求)多线程的目的:提高程序的运行效率。