案例需求:要开发的项目是一个IT问答平台,其中用户发布问题后,需要给平台上所有选了该问题类别的邮箱中各发一份邮件。
分析:这个时候就必须用到多线程了,因为用户发布问题和给其他用户发邮件可以说是两个相互独立的步骤,如果让主程序一行一行执行的话,那如果发邮件的人很多的话,用户发一个问题要等很长时间页面才会响应,这个肯定是不能容忍的。但是用普通new一个线程,然后.start的话会出现大问题,很有可能服务器会崩掉,线程不能复用。
ExecutorService pool = Executors.newCachedThreadPool();
SendTwoEmailTools st=new SendTwoEmailTools();//你的线程类
Thread thread = new Thread(st);
//将线程放入池中进行执行
pool.execute(thread);
//关闭线程池
pool.shutdown();
这样就比较好的解决问题了。
如有疑问,可以联系本人qq:1913284695