相信很多童鞋在面试的时候,面试官都会提这样的一个问题。
请你说说什么是进程,什么是线程,两者有什么区别?
很多童鞋遇到这样的提问可能会这样回答,进程就是一个程序运行起来的状态,而线程是一个进程中不同的执行路径,这种回答也没什么毛病,粗略的来说是对的,就是相对不够专业。
下面我们从专业的角度来做个回答
进程:进程是OS(操作系统)分配资源的基本单位。注:分配资源重要的一点是,分配了独立的内存空间
线程:线程是OS(操作系统)执行调度的基本单位。
进程和线程最重要的区别:线程共享进程的内存空间,线程没有自己独立的内存空间。
那什么是纤程呢,
纤程:纤程是用户态的线程,是线程中的线程,切换和调度不需要经过OS(操作系统)。
纤程的优势:1.占有的资源少,为什么说他占有资源少呢?举例:操作系统要启一个线程前后要为这个线程配的内存数据大概有 1M,而纤程大概是4K
2.由于纤程非常的轻量级,所以切换比较简单
3.可以同时被启动很多个(10万个都没问题)
目前支持内置纤程的语言Kotlin Scala Go 等,Java的正在开发中。。。。。
下面我就举个例子来证明一下,纤程先对于线程来说的优势,有兴趣的小伙伴可以试试
这是我们所需的依赖:
<?xml version=