什么时候使用多线程?
- 程序需要同时执行两个或者多个任务时
- 比如java程序中的main()方法线程要和gc()方法线程要同时进行(如果不同时进行,可能还没有执行完main()方法这时候堆空间就已经满了[这里其实栈空间不影响,因为栈空间是随时用随时出的,不用gc()进行处理])
- 程序需要实现一些需要等待的任务时,如果用户输入,文件读写操作,网络操作,搜索等
- 比如在滑动聊天界面时,加载图片是一个线程,加载文本让它是另外一个线程,这时候如果是网络不是很好的话,那我们就算加载不出来图片,但是只要可以加载出来文本框,那么也是不会影响太多用户的体验,也就是这时候我们将文本框,也就是照片框加载出来了已经,这个时候我们网络不好,图片我们可以慢慢加载,最起码不是太影响客户的使用
- 这里如果是使用单线程的话,文本的加载和图片的加载在一个线程中的话如果网络不是很好的话,而且这时候是图片要先进行加载,这时候我们就需要等待图片加载出来,可能客户要等好久才能将图片加载出来,这样就很影响客户的体验
- 需要后台运行一些程序时(这里我们肯定也是要使用多线程进行处理)