如何理解线程池

2019-07-23· 42 次浏览
线程池是一个对象,它的里面包含了多个线程,我们可以给线程池添加任务(也就是一段代码),任务会以list的形式存放,排成一个队列,我们称为任务队列,线程池会分配线程来执行任务代码。 例如,楼下有100桶水,现在我们叫上10个人去搬水,就相当于任务队列中有100个任务,线程池中有10个线程,然后10个人各自去搬水,有人快,有人慢,但无论如何,100桶水搬完为止, 线程池常见的属性:最小线程数,最大线程数,最大空闲时间,当一个线程空闲了太久,就会被释放, 用户注册时发送欢迎邮件就可以用线程池,由于发送邮件可能会有1-5秒的延迟,所以我们可以直接把这个代码写成任务扔进线程池,让池子慢慢去发送,而不影响我们的业务流程。