概念:
多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”
示例图:

相关概念:
并行:指两个或多个事件在同一时刻发生(同时发生),指在同一时刻,有多条命令在多个处理器上同时执行。
并发:指两个或多个事件在同一个时间段内发生,指在同一时刻只能有一条指令执行,但多个进程的指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。
在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单CPU系统中,每一时刻只能有一个程序执行,即微观上这些程序是分时的交替运行,只不过给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。
而在多个cpu系统中,则这些可以并发执行的程序便可以分配到多个处理器上,实现任务并行执行,即利用每个处理器来处理一个可以并发的程序,这样多个程序便可同时运行,目前市场上的多核处理器,便是核越多,并行处理的程序越多,能大大的提高电脑的运行效率。
例子:
--并行:多项工作一起执行后,再汇总,例如:泡方便面,电水壶烧水,一边撕调料倒入碗中
--并发:同一时刻多个线程在访问同一个资源,多个线程对一个点,例:春运抢票,电商秒杀
进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元;
线程:就是进程中的一个独立控制单元,线程在控制着进程的执行。一个进程中至少有一个进程。
多线程:一个进程中不只有一个线程。
为什么要用多线程:
----为了更好的利用cpu的资源,如果只有一个线程,则第二个任务必须等到第一个任务结束后才能进行,如果使用多线程则在主线程执行任务的同时可以执行其他任务,而不需要等待;
----进程之间不能共享数据,线程可以;
----系统创建进程需要为该进程重新分配系统资源,创建线程代价比较小;
----Java语言内置了多线程功能支持,简化了java多线程编程。
本文探讨了多线程的概念,解释了并发与并行的区别,展示了多线程在操作系统中的应用,以及为何使用多线程,包括其优势和Java编程中的实现。通过实例深入解析了多线程技术如何优化CPU资源利用和数据共享。
10万+

被折叠的 条评论
为什么被折叠?



