线程(概念篇)

多线程
是指在软件 或者 硬件 上实现多个线程并发执行的技术。
 
优势
具有多线程能力的计算机 因为有硬件支持而使其能够在同一时间执行多个线程,进而提升整体的处理性能。
 
 
操作系统中采用 时间片轮转法 来保证多个进程 / 线程并发执行,所谓的并发就是宏观并行,微观串行
 
Java虚拟机的多线程:是通过 线程流转切换并分配处理器执行时间 的方式来实现的。

 
时间片轮转法: 比如cpu有1秒的执行时间,把1秒钟平分成100份。然后,给了3个线程各自一份,迅速来回切换。
 
宏观并行,微观串行
  • 宏观上而言,同一个时间段上,3个线程都在工作;
  • 微观上而言,时间点上的某一时刻,Cpu只能给一个线程执行。
 
 
在多任务操作系统中,表面上支持 进程并发执行。例如,可以一边听音乐,一边看小说。
但,实际上 这些程序并不是同时执行的。
因为CPU具备分时机制每个时间点只能执行一个程序,只不过由于CPU运行速度非常快,能够在极短的时间内在不同的进程之间进行切换,所以给人以 同时执行多个进程的感觉。
 
 
程序 ?
存放在硬盘/磁盘上的可执行文件。
 
进程 ?
运行在内存中的程序。
即,每一个运行中的程序都是一个进程,在这个进程的内部包含多个执行单元,而每个执行单元就是一个线程,而且每个进程中至少包含一个线程。
 
当一个Java程序启动时,就会产生一个进程。该进程会默认创建一个线程,称为主线程。
在主线程上会运行 main()方法中的代码。
代码按照顺序 依次调用的程序,称为单线程程序
若希望程序中 ,实现多段程序代码 交替执行的效果,则需要创建多线程程序
多线程程序在运行时,每个线程之间都是独立的,它们可以并发执行,这里的并发是相对的,也就是 说看起来是同时执行的,而实际上和进程一样,也是由CPU轮流调度的。
 
 
 
 
 
多进程 目前主流的操作系统几乎都支持进程并发执行。
优点 提供多进程是为了让操作系统同时执行多个任务
缺点: 进程是重量级的,新建进程对系统的资源消耗比较大。
 
线程【指进程内部的程序流】
线程是轻量级的,新建线程对系统的资源消耗比较小,通常会共享所在进程的资源,以后的主流开发都采用多线程技术。
 
多线程技术 优点: 既能节省空间,系统资源。还能同时执行多个任务。
 
 
 
Java中只有 多线程技术! 没有多进程技术。

猜你喜欢

转载自www.cnblogs.com/penguin1024/p/11762091.html