自己学习下来的理解嘛:
python真正意义上面没有多线程,但是是有多进程的,进程好比一个软件的运行,线程好比一个软件下面的各个功能的实现,python不能实现多线程的原因是因为GIL的存在,GIL保证了每一时刻都只允许一个线程在执行,没有取消掉这个锁的原因是,已经根深蒂固了很长时间,所有都用到了这个锁,而且python解释器丢掉了这个全局解释器锁发现速度还没有不扔掉快,所以就一直保留在现在,python多线程爬虫也是这个原理,实际上面就是单线程,但是python多线程爬虫用到了协程的概念,协程的作用就是在你一个线程发出去一个请求的时候要等很长时间才会给你一个响应,这样就很慢,协程就这样做,在你发出的一个请求的时候,在响应回来这段时间里面,可以接着继续在多发几个请求过去,这样响应也会节省很多时间,协程就是在线程上面更小的执行单位,协程的速度都比线程和进程高很多。
python中解决多线程的原因:
将多线程改为多进程threading--->multiprocessing
或者更换语言(当然这种不可取,因为我只会python)
再者就像python爬虫一样附加协程来实现