用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。
就例如一个网络爬虫的功能,有10亿数据,假如一条请求花费0.1秒,因为时间有限,所以你要尽量提升开发效率,你就需要好多的服务器,大家也都知道,每台服务器的价钱都是成本,这么庞大的成本显然不切实际。我们只能想办法从自身提升效率。
假如一个请求花费0.1秒,你处理他的请求只需要大约1毫秒,其实百分之99的时间都已经浪费了,所以,我想可以理论上开辟100个线程请求数据,这样CPU就没有任何浪费。当然,也只是理论上,实际上,线程之间的切换也是需要开销的,所以不可能开辟这么多的线程,不过开辟几个线程是很不错的选择。
线程,一般就是在解决CPU浪费资源时才会用到。
这就是为什么要用到线程。