
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习Java编程开发的相关技术知识,而本文我们就通过案例分析来简单了解一下,Java并发编程基础概念分享。
并发与并行
并发
在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。
并行
当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
进程线程纤程
进程
进程是计算机中已运行程序的实体。
线程
线程是操作系统能够进行运算调度的小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
以上内容取自维基百科,从上面的描述来看,进程实质上就是一个程序运行起来的状态;线程就是一个进程中不同的执行路径。从更专业的角度上来看,进程实质上操作系统分配资源的基本单位;而协程是执行调度的基本单位。(分配资源就好比当你打开一个程序,操作系统在内存上为你划分一块区域来加载你的程序)。每个进程之间的内存空间是独立的,而各个进程内的线程是共享内存空间的,没有自己的独立内存空间。这是进程和线程比较重大的区别。
纤程
那什么是纤程呢?纤程其实我们可以理解为线程的线程。系统执行调度的时候是使用线程作为基本单位,是不可控的,但是我们又需要一定的顺序执行,这时候就需要使用锁来解决。那纤程的调度,完全是由用户可以控制的。纤程还可以理解为用户态的线程,他不会涉及到用户态与内核态的切换。因为不需要经过操作系统的切换和调度,那么他速度肯定也是快的。纤程相比线程来说,占用的资源也更少。一个线程所占资源大概在4k左右,而一个线程则是1M。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。