首先从三个问题来记录学习的过程
1.什么是线程,它与进程的关系是什么,它的作用和意义是什么?
2.怎么使用多线程,具体有哪些使用方法?
https://blog.csdn.net/hzr0523/article/details/83590988
3.使用多线程后,带来的问题有哪些,解决方法有哪些?
本片文章将介绍第一个问题
一、什么是多线程,它与进程的关系是什么,它的作用和意义是什么?
多线程这个词汇,对于程序员来说,并不陌生。首先了解下线程的概念,以及线程与进程的区别?
1.什么是线程?
线程有时候被称为轻量级进程,现代大部分操作系统把线程作为时序调度的基本单元,而不是进程。在没有明确协调的情况下,线程相互间同时或异步的执行。因为线程共享其所属进程的内存空间,因此所有同一进程中的线程访问相同的变量,并且从同一个堆中分配对象,这相对于进程间的通信(inter-process)机制来说,实现了良好的数据共享。
但是,如果没有明确的同步来管理共享数据,一个线程可能会修改其他线程正在使用的数据,产生意外的结果。
2.线程与进程的关系?
1)根本区别: 进程是资源分配的基本单位,线程是任务执行和调度的基本单位
2)开销: 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
3)所处环境: 在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
4)内存分配: 系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。
5)包含关系: 没有线程的进程可以看做是单线程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
3. 多线程的作用和意义?
多线程可以提高程序运行效率,充分利用CPU的资源,提高CPU的使用率。
.大多数的情况下, 使用多线程 主要是需要处理大量的IO操作或处理的情况需要花大量的时间等;