Java进程基础

来源:互联网 发布:广告创意提案 知乎 编辑:程序博客网 时间:2024/06/11 22:47

(1)进程是处于运行中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。
(2)进程的三个特征:
独立性:进程是系统中独立存在的试图,他可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间。
动态性:进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。
并发性:多个进程可以在单个处理器上并发执行,多个进程之间不会相互影响。
(3)对于一个CPU而言,他在某个时间点只能执行一个程序,也就是说,只能运行一个进程,CPU不断的在这些进程之间轮换执行,因为CPU运行的速度很快,所以用户基本感受不到中断。
(4)多线程扩展了多进程的概念,使得同一个进程可以同时并发处理多个任务。线程是进程的执行单元。线程在程序中是独立的、并发的执行流。当进程被初始化后,主线程就被创建了。对于绝大多数程序来讲,通常要求有一个主线程,但也可以在该线程内创建多条顺序执行流,这些顺序执行流就是线程,每个线程也是相互独立的。
(5)线程是进程组成部分,一个进程可以拥有多个线程,一个线程必须要有一个父进程。线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源,他与父进程的其他线程共享该进程所拥有的全部资源。
(6)线程是独立运行的,它并不知道进程中是否还有其他线程存在。线程的执行是抢占式的,也就是说,当前运行的线程在任何时候都可能被挂起,以便在另一个线程可以运行。
(7)一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

多线程的优势:
因为线程的划分程度小于进程,使得多线程程序的并发性高。进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大的提高了程序的运行效率。
线程比进程具有更高的性能,这是由于同一个进程中的线程都有共性–多个线程共享一个进程的虚拟空间。线程共享的环境包括:进程代码段,进程的公有数据等。利用这些共有的数据,线程很容易实现相互之间的通信。
系统创建进程时需要为该进程重新分配系统资源,但创建线程的代价则小得多,因此使用多线程来实现多任务并发比多进程效率高。
Java语言内置 了多线程功能支持,而不是单独作为操作系统的底层调度方式,从而简化了Java的多线程编程。

0 0
原创粉丝点击