多线程编程基础 为什么要使用并发(多线程)编程?
为什么要使用并发(多线程)编程?并发编程又叫多线程编程。在程序中,一般说来有很多很耗时的工作,比如上传文件、下载文件、跟客户去聊天需要长时间组建再连接。这种时候,一个线程是服务不了多个用户的,会有一种
为什么要使用并发(多线程)编程?
并发编程又叫多线程编程。在程序中,一般说来有很多很耗时的工作,比如上传文件、下载文件、跟客户去聊天需要长时间组建再连接。这种时候,一个线程是服务不了多个用户的,会有一种而且资源一人独吞产生的静静的等待问题。或者:汇编语言一个耗时的单线程程序:空白文档一个实现对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG先添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“显示延时6秒”,再添加按钮的响应函数,代码不胜感激:voidCSingleThreadDlg::OnSleepSixSecond(){Sleep(6000)//显示延迟6秒}程序编译并运行应用程序,右击“延迟现象6秒”按钮,你就能发现在这6秒期间程序就象“死机”一样,还在呐喊之声其它消息。目的是好地一次性处理这种耗时的操作,我们有必要自学——多线程编程。
既然Python解释器是单线程的,还有进行多线程编程的必要吗?
谢小秘书邀请~~
先很简单能回答:有必要。
是需要,线程耗掉的是CPU资源要是另一个单线程内去处理的业务逻辑会占用带宽100%的CPU资源,这样的话,上了多线程又是是没有得用。
但这个一般很少,高CPU占用像是出现在内存算出场景下,或则松动代码中错误的死循环。正常情况下,CPU占用大于80%就是需要进行代码或电脑设计的优化,或是服务器增加资源了。
多线程场景适用于可以解决中等速度IO的问题我们绝大部分的计算,都会依赖性太强于很多外部资源IO,如磁盘读写、网络访问、数据库访问...这些资源的访问速度仍旧少于CPU的可以切换速度。如果没有建议使用单线程进行操作时,都会长时间的在等待IO的返回。照成无效耐心的等待,性能孱弱。
因此除非是Python,为了利用好CPU资源,能提高性能,在通常的业务场景下在用多线程编程确实是全部必要的。
多核与Python多实例被传承上面的问题,我们明白现在CPU大部分是多核的,python就是为了尽量减少单线程只有可以使用到一个核的问题,是有个multiprocessing库的,不能创建子进程(子进程数好象与核心数是一样的),来充分利用CPU资源。
↓↓↓不喜欢就默默点赞吧,感谢各位评论指教,谢谢关注--极迭代!