版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/85012216
多线程
进程:运行中的一个程序,在计算机中的一个运行路径。一个程序只能有一个进程
线程:是进程的一个组成单元。在一个进程中至少有一个或一个以上的线程存在
Java是最先支持多线程开发的语言之一,Java从一开始就支持了多线程能力,因此Java开发者能常遇到上面描述的问题场景。
进程和线程的区别
- 是否占有资源问题
- 一个进程的创建/撤销所需要的开销远远大于一个线程所需要的开销
- 进程为重量级组件,线程为轻量级组件
线程的主要特点
- 不能以一个文件名的方式独立存在磁盘中
- 不能单独执行,只有在进程启动才可启动
- 线程可以共享进程相同的内存(代码与数据)
线程的主要用途
- 利用它可以完成重复性的工作(如实现动画、声音等的播放)
- 从事一次性较费时的初始化工作(如网络连接、声音数据文件的加载)
- 并发执行的运行效果(一个进程多个线程)以实现更复杂的功能
多线程程序的主要有点
- 可以减轻系统性能方面的瓶颈,因为可以并行操作
- 提高CPU的处理器的效率。在多线程中,通过优先级管理,可以使重要的程序优先操作,提高了任务管理的灵活性;另一方面,在多CPU系统中,可以把不同的线程在不同inbgdCPU中执行,真正做到同时处理多任务。多线程不是提高执行速度,而是提高CPU利用率
多线程的代价
多线程的作用
- 多线程不是为了提高执行速度,而是提高应用程序的使用率
- 线程和线程共享“堆内存和方法去内存”,栈内存是独立的,一个线程一个栈
- 提升用户体验