系统短信发送为什么要使用线程?

前几天开发审批单据通过后发送短信功能,我做二次开发,根据系统原有代码进行增加功能操作,我观察之前的代码是创建了线程,但是不清楚为什么创建线程,且线程内使用了jdbc连接数据库的方式,上网上查这种方式好像是数据库连接池,所以我想问,为什么发送短信要使用线程,且线程中为什么创建数据库连接池?还请帮忙解答。

1.短信这种功能最好是异步的,因为你发的快一点慢一点,用户是无感知的。不新开线程出来,就需要一直等待短信发完才能执行后续代码。
2.数据库连接池就是方便管理数据库的。如果每开一个线程就创建一个数据库连接的话,很容易把数据库连接占满出现too many connections问题的。

因为发送短信需要等待服务器返回,整个过程环节多,延迟比较大(秒级别),如果不用线程,那么等于整个服务器所有的资源全部歇着,等短信调用,效率非常低。如果要发100个,每个2秒,就得200秒。
好的做法是异步放在线程执行,主程序继续做别的,这样可以提高吞吐率,如果开多个线程,相同的时间可以发成千上万的短信。