写在前面,了解基本的线程概念,才能更好的了解代码,当前先解读一些字面名字和基本api,后面会逐渐的补充线程和多线程,并发编程的知识点
什么是线程
1.操作系统运行的最小单位
2.被包含在进程当中
3.同一个进程中的多个线程可以共享这个进程中的全部资源
4.线程不能独立存在,必须是进程的一部分
什么是进程
1.正在运行的程序实例
2.具有独立功能的程序,操作系统执行的基本单元
什么是多线程
1.多线程是指多个线程并发执行的技术
2.将原本一个线程执行的任务分为多个线程共同完成,每一个线程完成原来线程不同的部分,提高cpu的利用率
3.多线程运行在多核处理器会发挥出更大的优势,单核处理器,cpu也可以通过时间片的分配实现多线程的效果。
什么是并发
1.当单核系统中,只有一个cpu不能运行一个以上的线程,当运行一个线程的时候别的线程将被挂起,这种状态叫做并发
什么是并行
1.当拥有多个cpu时,一个cpu执行一个线程,其他cpu执行其他线程,不抢占cpu资源,同时执行,叫做并行
线程状态
线程有多种状态,下面是部分状态
1.running 运行状态
2.suspended 挂起状态
3.resumed 恢复状态
4.blocked 阻塞状态
线程任何时候都可以停止,停止后不能再恢复
线程优先级
优先级的数值没有绝对的意义,优先级高的线程并不会比优先级低的线程运行的快
线程上下文切换:
1.线程资源放弃控制:优先级高的线程会获取更高的cpu资源。
2.线程被优先级高的线程取代,只要高优先级的线程希望运行都会取代低优先级的线程,叫做抢占式多任务处理
3.优先级相同的线程情况复杂,windows系统会以循环的方式自动获取cpu资源
主线程
1.程序启动会立即运行一个线程,这个线程是主线程
2.子线程都是由主线程产生的
3.主线程是最后才结束执行的线程