一个多线程的程序,可以CPU上并发执行,减少CPU的空闲时间,发挥CPU的运算能力,提高并发量。
A程序执行过程十秒钟,B程序过程2秒钟,带给用户的体验感完全天差地别。
一般我们将业务的某个模块提取出来进行并发编程,降低代码耦合度,阅读起来也清晰明了;使用异步处理能大大提成前后端的响应时间(这个比较有局限性,举个栗子:假设用户签到后端处理逻辑分为两个模板,1.签到状态处理、2.用户相关业务表信息更改,那么签到状态处理用redis快速处理,至于用户相关业务信息更改,可以异步处理,没必要一直等待,当然也要结合实际开发场景来,这里仅是一个栗子,不能生搬硬套)
1.线程之间的安全性,由于同一个进程中的多线程之间的资源是共享的,当一个业务导致资源发生变化,可能影响到其他业务。
2.死锁、死循环问题,这个很可怕,线程之间没有正确处理锁释放或者让业务无限循环,不说了,你懂得。。
3.线程过多,导致服务器资源耗尽,造成系统死机。。哦卖糕的!