主页 > 新闻资讯 > 大数据开发基础之JAVA线程进程

大数据开发基础之JAVA线程进程

作者:游老师 浏览次数: 2021-03-17 14:01
在JAVA中几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程。当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程。而今天就给大家带来了大数据开发基础之JAVA线程进程的基础知识。
一、进程
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。
二、 线程
线程是一条执行路径,是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。
一个正在运行的软件(如迅雷)就是一个进程,一个进程可以同时运行多个任务( 迅雷软件可以同时下载多个文件,每个下载任务就是一个线程), 可以简单的认为进程是线程的集合。
线程是一条可以执行的路径。多线程就是同时有多条执行路径在同时(并行)执行。
三、特点
(1)进程特点:
1:独立性:进程是系统中独立存在的实体,它可以独立拥有资源,每一个进程都有自己独立的地址空间,没有进程本身的运行,用户进程不可以直接访问其他进程的地址空间。
2:动态性:进程和程序的区别在于进程是动态的,进程中有时间的概念,进程具有自己的生命周期和各种不同的状态。
3:并发性:多个进程可以在单个处理器上并发执行,互不影响。
(2)线程特点
1:轻型实体
线程中的实体单位基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源。线程的实体包括程序、数据和TCB。线程是动态概念,他的动态特性由线程控制块TCB描述。
2:独立调度和分派的基本单位
再多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。但由于线程很“轻”,故线程的切换非常迅速且开销小(在统一进程中的)。
3:可并发执行
在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了处理机与外围设备并行工作的能力。
4:共享进程资源
在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),这意味者,线程可以访问该地址空间的每一个虚地址;此外,还可以访问该进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。
 
创建线程的方式:
1)继承Thread类,实现run方法
2)实现Runnable接口,实现run方法,用实现接口的实例作为Thread类的构造参数创建线程
3)使用callable方式
创建MyCallable类实现callable<object>接口,并重写call方法,该类带有返回值object(和Runnable的区别)
创建一个线程池ExecutorService
创建callable<object>,重写call方法并具有返回值object
创建一个Future<object>来接收callable<object>的返回值,可以用future.get()获取
 
以上就是关于大数据开发基础之JAVA线程进程的基础知识,希望大家点个关注,及时收取最新文章推送。
有问题的欢迎在评论区留言,如有侵权请告知。
热点排行
推荐文章
立即申请>>