课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而今天我们就通过案例分析来了解一下,java编程开发线程与进程解析。
1、程序、进程、线程
程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即一段静态的代码,静态对象。
进程(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态过程,有它自身的产生、存在和消亡的过程——生命周期。如运行中的QQ、运行中的MP3播放器。
线程(thread)是一个程序内部的一条执行路径。由进程可进一步细化为线程。若一个进程同一时间并行执行多个线程,就是支持多线程的。
2、理解
程序是静态的,进程是动态的。
进程作为资源分配的基本单位,系统在运行时会为每个进程分配不同的内存区域。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。一个进程中至少有一个线程。一个进程当中有可能会存在多条执行路径。
线程作为调度和执行的基本单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小。是进程中一个独立的控制单元,线程在控制着进程的执行。是进程中的内容。
一个进程中的多个线程共享相同的内存单元/内存地址空间,它们从同一堆中分配对象,可以访问相同的变量和对象。这就使得线程间通信更简便、高效。但多个线程操作共享的系统资源可能就会带来安全隐患。
进程可以细化为多个线程。每个线程,拥有自己独立的栈和程序计数器;多个线程共享同一个进程中的方法区和堆。也就是说:
虚拟机栈、程序计数器:一个线程一份,线程私有。
方法区、堆:一个进程一份,也就是多个线程共享一份。
结论:多个线程可以共享(一个进程中的)堆(有变量和对象)和方法区,所以实现多个线程间的通信是比较方便的,但是也导致多个线程操作共享资源可能会带来安全隐患。线程同步即用来解决上面的安全隐患。
3、单核与多核
单核CPU:其实是一种假的多线程,因为在一个时间单元内,只能执行一个线程的任务。例如:虽然有多车道,但是收费站只有一个工作人员在收费,只有收了费才能通过,那么CPU就好比收费人员。如果有某个人不想交钱,那么收费人员可以把他"挂起"(晾着他,等他想通了,准备好了钱,再去收费),但是因为CPU时间单元特别短,因此感觉不出来。
多核CPU:如果是多核的话,才能更好的发挥多线程的效率。现在的服务器都是多核的。
4、并行与并发
并行:多个CPU同时执行多个任务。比如:多个人同时做不同的事。
并发:一个CPU同时执行多个任务(采用时间片原理)。比如:秒杀、多个人做同一件事。
5、多线程优点
提高应用程序的响应。对图形化界面更有意义,可增强用户体验;提高计算机系统CPU的利用率;改善程序结构,将既长又复杂的进程分为多个线程,独立运行,利于理解和修改。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。