线程池的理解

217 阅读2分钟

线程

  1. 线程一出生就被编了一个号[如:0X623],系统开辟一块 内存空间,叫做线程池,将新生成的线程存入线程池中等待执行命令;
  2. 每个线程在离开线程池之前都会被赋予任务【处理包裹】;
  3. 然后就被放到就绪车间【另一块内存空间】,等待CPU的召唤;
  4. 线程的优先级越高,就越早进入运行车间【获得一片cpu运行时,获取计算机的全部资源,有权利调配硬盘,文件系统,数据库,网卡,内存等资源】;
  5. 进入运行车间后,线程根据包裹操作步骤,按顺序的完成操作(比如请求登录)。
  6. 如果线程发出指令后,需要等待返回响应数据,这里需要时间,此时线程进入休闲状态(这时CPU通知该线程,记住你正在执行的步骤,然后买上带着你的包裹离开);
  7. 线程带着包裹来到了等待车间,等待其他资源的响应之后再执行后续操作。 如果线程的cpu执行片段超时,就重新进入就绪车间等待CPU召唤;不断反复直到处理完包裹[包裹里的清单按步骤执行完];
  8. 当前线程将重新进入线程池中等待下一个任务。
  9. 碰到重要的任务时,应该对所操作资源进行加锁,避免脏数据产生。
  10. 如果两个线程互相竞争资源,势必将产生死锁,大量消耗计算机资源。这时候操作系统就会出面调解,并选择kill掉其中一个线程。
  11. 计算锁对象的权重,权重高的将优先获得锁并完成执行任务。