非技术指导性文章,用简单的例子描述下什么是多线程以及队列
一般一个多线程任务设置会涉及到如下专业名词:
核心线程数
最大线程数
队列长度
还有个不太常用到的拒绝策略
例子:
假设有一个银行,这个银行就是一个业务进程。
1、最开始没有银行,只有一个小桌子,做了一个经理,所有来办理业务的人都只能在他这,等他办完前一个才能处理下一个
2、后来发现办理太慢,决定盖一个银行,招一些人
3、银行里有一些职员,还有一些业务窗口,其中一些是正式窗口,就是一直开放的,一些是临时窗口。
4、当有用户来办理业务时,经理首先看正式窗口是不是空闲,如果空闲就让他直接去办理,不空闲的话,在看下能不能开临时窗口,如果能开就去临时窗口,如果临时窗口也满了,就给他排队取号。
5、因为银行的空间是有限的,所以排队的人数也是有限制的的。
6、当排队的人数达到了最大限制,就需要经理来选择怎么做,是直接告诉他回去,还是经理自己帮他办理,当经理帮他办理时,就回到了最开始阶段,后面的人就只能经理处理完当前的人的业务,再去处理下一个。
在上文中:
客户就是要消费的任务,经理就是主进程