海外购物网站哪个最好,网站模板的好处,网站源码使用方法,产品外观设计报价文章目录1、多线程的含义2、原理3、优势4、线程与进程的区别5、线程与多线程的区别6、线程调度的分类7、同步与异步8、并发与并行9、为什么要使用线程池10、线程池的好处11、线程池的分类12、意义1、多线程的含义
多线程#xff08;multithreading#xff09;#xff0c;是…
文章目录1、多线程的含义2、原理3、优势4、线程与进程的区别5、线程与多线程的区别6、线程调度的分类7、同步与异步8、并发与并行9、为什么要使用线程池10、线程池的好处11、线程池的分类12、意义1、多线程的含义
多线程multithreading是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程进而提升整体处理性能。具有这种能力的系统包阔对称处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中这些独立运行的程序片段叫作“线程”Thread利用它编程的概念就叫作“多线程处理”。
2、原理
多线程就是把操作系统中的这种并发执行机制原理运用在一个程序中把一个程序划分为若干个子任务多个子任务并发执行每一个任务就是一个线程。
实现多线程是采用一种并发执行机制。
3、优势
1、方便的通信和数据交换
2、更高效地利用CPU
4、线程与进程的区别
线程 是进程中的一个执行路径共享一个内存空间线程之间可以自由切换并发执行. 一个进程最少 有一个线程线程实际上是在进程基础之上的进一步划分一个进程启动之后里面的若干执行路径又可以划分成若干个线程。
进程 是指一个内存中运行的应用程序每个进程都有一个独立的内存空间
5、线程与多线程的区别
线程是系统对代码的执行进程如果将系统当做一个员工被安排执行某个任务的时候他不会对任何其他的任务作出响应。只有当这个任务执行完毕才可以重新给他分配任务。一个程序都有一个主线程负责执行程序必要的任务 。 当我们处理一个消耗大的任务如上传或下载图片如果让主线程执行这个任务它会等到动作完成才继续后面的代码。在这段时间之内主线程处于“忙碌”状态也就是无法执行任何其他功能。体现在界面上就是用户的界面完全“卡死” 。
多线程是指将原本线性执行的任务分开成若干个子任务同步执行这样做的优点是防止线程“堵塞”增强用户体验和程序的效率。缺点是代码的复杂程度会大大提高而且对于硬件的要求也相应地提高。
6、线程调度的分类
1分时调度
所有线程轮流使用 CPU 的使用权平均分配每个线程占用 CPU 的时间。
2抢占式调度 常用
优先让优先级高的线程使用 CPU如果线程的优先级相同那么会随机选择一个(线程随机性) Java使用的为CPU使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核新而言某个时刻 只能执行一个线程而 CPU的在多个线程间切换速度相对我们的感觉要快看上去就是 在同一时 刻运行。 其实多线程程序并不能提高程序的运行速度但能够提高程序运行效率让CPU的 使用率更高。
7、同步与异步 同步:排队执行 , 效率低但是安全.
异步:同时执行 , 效率高但是数据不安全
8、并发与并行
并发指两个或多个事件在同一个时间段内发生。
并行指两个或多个事件在同一时刻发生同时发生。 9、为什么要使用线程池
如果并发的线程数量很多并且每个线程都是执行一个时间很短的任务就结束了这样频繁创建线程就会大大降低 系统的效率因为频繁创建线程和销毁线程需要时间. 线程池就是一个容纳多个线程的容 器池中的线程可以反复使用省去了频繁创建线程对象的操作节省了大量的时间和资源。
10、线程池的好处
降低资源消耗。提高响应速度。提高线程的可管理性。
11、线程池的分类 1缓存线程池长度无限制
执行流程 :
判断线程池是否存在空闲线程存在则使用不存在,则创建线程 并放入线程池, 然后使用
2. 定长线程池 长度是指定的数值
执行流程 :
判断线程池是否存在空闲线程存在则使用不存在空闲线程,且线程池未满的情况下,则创建线程 并放入线程池, 然后使用不存在空闲线程,且线程池已满的情况下,则等待线程池存在空闲线程
12、意义
无论是过去还是现在世界上大多数计算机仍然采用的是冯·诺依曼结构这种结构的特点就是顺序处理一个处理器在同个时刻只能处理一件事情。 Windows 95/NT采用一种全新的任务调度策略它把一个进程划分为多个线程每个线程轮流占用CPU的运算时间操作系统不断地把线程挂起、唤醒、再挂起、再唤程如此反复由于现在CPU的速度比较快给人的感觉是多个线程在同时执行就好像有多个CPU存在于计算机中一样。