目录
线程是什么?
首先我们来简单了解一下线程是什么?
一个线程就是一个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码 ,现在并发编程成为了主流.
故事例举:
现有一个新生班这个班有64个学生,班主任管理了很多学生现在忙不过来,然后赶紧开了个班会进行了班委的选举,然后每个班委干一件事,现在就有了几个执行流共同完成任务,但是本质上都是为了给这个班级服务 此时,就把这种情况称为多线程,将一个大任务分解成不同的小任务,交给不同的执行流分别执行,其中班主任叫来的其他班委,了所以班主任就被称为主线程(Main Thread)
-
创建线程比创建进程跟快
-
销毁线程比销毁进程更快
-
调度线程闭调度进程更快
进程和线程的区别
-
进程是包含线程的,每个进程至少有一个线程存在,即主线程
-
进程和线程之间不共享内存空间,同一个进程的线程之间共享同一个内存空间和文件描述符表
-
进程是操作系统资源分配的基本单位,线程是操作系统调度执行的基本单位
-
进程之间具有独立性,一个进程挂了,不会影响到别的进程,同一个进程里的多个线程之间,一个线程挂了,可能会把整个进程带走,影响到其他线程
-
线程比进程更加的轻量化
-
创建线程比创建进程跟快
-
销毁线程比销毁进程更快
-
调度线程闭调度进程更快
-
虽然说有些同学的事需要班委处理不想让同学们知道,但是班委之间讨论时每个班委都会知道,这就是同一个班级每个班委之间的信息是共享的,但如果是进程的话就不共享,这就是进程和线程之间最大的区别
-
进程是系统分配的最小单位,线程是系统调度的最小单位
线程(java)和线程(OS)之间的关系
线程是操作系统中的概念,操作系统内核实现了线程这样的机制,并且对用户提供了一些API供用户使用
java标准库中Thread类可以视为操作系统提供的API进行了进一步的抽象和分装