预期使用工具:一个任意数量的线程池
一个线程任务
预期效果:就创建一个线程任务和一个线程池,然后线程池中的线程对象交替执行线程任务
面临的难题:多线程随机被选
公平竞争CPU时间片
随机被唤醒
一旦被唤醒又随机参与竞争
通过线程池构造出来的线程对象无法实现对具体的对象的控制,咱们只能笼统的提交任务,而不能控制里面的对象,那么问题来了,你线程池是如何控制你造出来的线程对象的(萌发一个想法自己构建线程池,线程池能够控制它创建出来的线程对象,那么我创建出来的线程池我自己就能随意操控我的线程对象了)
试想一下这些充满随机性的线程对象如何实现可控性
锁,一次放一个线程来执行
线程通信,控制线程的钝化和活化
这些工具本质上都是来有效的控制一个线程对象
也就是说暂们只是选择性的决绝或接受一个线程对象而没有对全部的一个大局实现一个局面的控制
思想初始化(队列能够实现先进先出的操作也就是说,有没有一种可能,创建一个队列,来保存已经执行任务了的线程对象,即队列中的线程已经处于wait的状态,然后控制唤醒不是随机的了而是从队列的头开始唤醒,后面的继续如下的操作直到线程任务被执行完成)