前一篇博客将了,设计者为什么要设计线程。
无非想让线程不占有系统资源,但可以作为调度和分派的基本单元。这样就可以提高系统的吞吐量了。
1、什么是线程,它跟进程有什么关系?
2、什么是多线程?
3、线程之间又是什么关系?
3、多线程有什么优势呢?
1、什么是线程,他跟进程有什么关系
因为线程是从进程演化而来的,大家有时把线程叫做轻量级进程。
线程:一个程序内部的顺序控制流。
线程是进程的组成部分,是进程的执行单元,一个进程可以拥有多个或单个线程,一个线程必须有一个父进程。
为什么一个线程必须有父进程?如果没有父进程,那线程共享谁的资源呢?
因为线程是进程的执行单元,因此它是可以完成一定的任务的,由此进一步推出:
线程可以跟共享父进程的其他线程协同来完成进程的任务。
比如说顾客来店里说:我要吃饭(这个请求或任务).
那么服务员(线程B)负责下单,厨师(线程A),负责来做菜,茶水员(线程C)负责上菜倒水。
就这样一个进程又被划分多个可被执行的线程,并发执行了。顾客就吃上了放,这个任务也完成了。
归纳起来:操作系统可以同时执行多个任务,每个任务就是一个进程,每个进程又可以执行多个任务,
每个任务就是一个线程。就像吃饭这个任务就可以划分多个子任务。
2、什么是多线程?
多线程:在单个程序中同时运行多个线程完成不同的任务,称为多线程。
3、线程之间的关系?
1、线程是独立运行的,它不知道在进程中是否还有其他的线程存在。因此线程之间不知道彼此存在。
2、一个线程可以创建和撤销另一个线程。
3、同一个进程中的多个线程之间是并发执行的。
4、多线程有哪些优势呢?
1、我们知道的,创建一个进程必须给它分配系统资源,但创建线程就不必了,因此需要资源就少了
推出来使用多线程实现任务并发比多进程的效率高。
2、进程之间可以不能共享系统资源(内存资源),但线程之间可以共享内存资源。
3、而且java语言内置了多线程功能支持。