Home Article Practice 进程和线程

进程和线程

2024-06-07 21:53  views:303  source:许某    

Java从语言层面上充分支持多线程技术。每个Java程序在底层都是通过线程来执行的。 多线程技术允许在一个程序
中通过多个线程同时执行业务逻辑,发处理请求并进行计算。相对于之前的单线程或者单进程应用来说,并发和多线程技术可
以充分发挥目前的硬件性能,缩短处理时间。
操作系统中执行程序的实体是进程和线程。代码通过进程和线程完成实际的任务

进程和线程的定义
进程(Process)是指操作系统中一个独立运行的程序。在操作系统中,进程是具有一定独立功能
的程序的一次运行,是操作系统进行资源分配和调度的一个独立单位。每个进程拥有独立的内存空间等系统资源。进程和进程
之间的系统资源不是彼此独立的。进程之间一般通过管道类的进程间通信(Inter-Process Communic
ation,IPC)方式进行通信。
线程(Thread)是指同一个程序(进程)内部每个单独执行的流程,是CPU调
度和分派的基本单位。它是比进程更小的能独立运行的基本单位。在同一进程内部可以有多个线程。线程本身基本上不拥有系
统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和堆栈),但是它可与同属一个进程的线程共享进
程所拥有的全部资源。线程是比进程更为轻量的执行实体。
进程与线程的关系
一个线程可以创建和撤销另一个线程,同一个进
程中的多个线程之间可以并发执行。相对进程而言,线程是一个更接近于执行体的概念,它可以与同进程中的其他线程共享数
据,但拥有自己的栈空间,拥有独立的执行序列。进程中包含多个线程,这些线程共享进程下的各类资源。
进程与线程的区别
进程与线程的主要差别在于它们拥有不同的操作系统资源管理方式。进程有独立的地址空间。当一个进程崩溃后,在保护模式
下不会对其他进程产生影响。而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的
地址空间。一个线程死掉就等于整个进程死掉。所以多进程的程序要比多线程的程序健壮。但在进程切换时,耗费资源较大,
效率要低一些。对于一些要求同时执行并且又要共享某些变量的并发操作,只能用线程,而不能用进程。
一个程序至少有一个
进程,一个进程至少有一个线程。线程的划分尺度小于进程,这使得多线程程序的并发性高。不同的进程在执行过程中拥有独
立的内存单元,而多线程是共享内存,因此多线程极大地提高了程序的运行效率。
线程在执行过程中与进程也是有区别的。每
个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能独立执行,必须依存在应用程序中,由应用
程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于:在一个应用程序中有多个执行部分可以同时执行。但操作
系统并没有将多个线程看作多个独立的应用(多个独立的进程),来实现进程的调度和管理以及资源分配。这就是进程和线程
的重要区别。在很多地方,线程被看作一种“轻量级进程”。



Disclaimer: The above articles are added by users themselves and are only for typing and communication purposes. They do not represent the views of this website, and this website does not assume any legal responsibility. This statement is hereby made! If there is any infringement of your rights, please contact us promptly to delete it.

字符:    改为:
去打字就可以设置个性皮肤啦!(O ^ ~ ^ O)