一,进程。

进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,操作系统中,几乎所有运行中的任务对应一条进程(Process),一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能,描述进程的有一句话非常经典——进程是系统进行资源分配和调度的一个独立单位。

进程是系统中独立存在的实体,拥有自己独立的资源,拥有自己私有的地址空间,进程的实质,就是程序在多道程序系统中的一次执行过程,它是动态产生,动态消亡的,具有自己的生命周期和各种不同的状态,进程具有并发性,它可以同其他进程一起并发执行,按各自独立的,不可预知的速度向前推进。

(注意,并发性(concurrency)和并行性(parallel)是不同的,并行指的是同一时刻,多个指令在多台处理器上同时运行,并发指的是同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,看起来就好像多个指令同时执行一样,)。

进程由程序,数据和进程控制块三部分组成。

二,线程。

线程,有时被称为轻量级进程(LightweightProcess,LWP),是程序执行流的最小单元,一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成,另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源,一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行,由于线程之间的相互制约,致使线程在运行中呈现出间断性,每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。

线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。

在JavaWeb中要注意,线程是JVM级别的,在不停止的情况下,跟JVM共同消亡,就是说如果一个Web服务启动了多个Web应用,某个Web应用启动了某个线程,如果关闭这个Web应用,线程并不会关闭,因为JVM还在运行,所以别忘了设置Web应用关闭时停止线程。

Java序列化是一个重要概念,但它很少用作持久性解决方案,开发人员大多忽略了Java序列化API,根据我的经验,Java序列化在任何Java核心内容面试中都是一个相当重要的话题,在几乎所有的网面试中,我都遇到过一两个Java序列化问题,我看过一次面试,在问几个关于序列化的问题之后候选人开始感到不自在,因为缺乏这方面的经验。

他们不知道如何在Java中序列化对象,或者他们不熟悉任何Java示例来解释序列化,忘记了诸如序列化在Java中如何工作,什么是标记接口,标记接口的目的是什么,瞬态变量和可变变量之间的差异,可序列化接口具有多少种方法,在Java中,Serializable和Externalizable有什么区别,或者在引入注解之后,为什么不用@Serializable注解或替换Serializalbe接口。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。