首页 > 编程知识 正文

python多进程和多线程,测速单线程和多线程的区别

时间:2023-05-06 02:39:00 阅读:140510 作者:3569

一、多进程多线程区别

多进程和多线程的区别在于,到底是什么是多进程,什么是线程

在一个进程中,也就是在一个APP中,有多个任务、线程,分别处理不同的任务。 例如,在这边处理ui、显示菜单的图形界面、在那边处理算法、计算结果、在那边收集外部传感器数据等都叫做多线程。

在一个系统上运行多个进程、多个APP应用程序,处理不同的任务称为多进程。

什么是多个APP应用程序? 像你的手机、电脑一样,运行听歌软件,聊qq,聊微信,看电影,都是不同的APP。

其实是不同的APP应用,对于一个Windows、安卓来说,宏观上是同时并行,微观上是串行运行的多个任务。

这个很明白吧。 理论上,唱歌、qq、微信、听电影也可以通过多线程处理。 但是,为什么要使用多流程,只是业务需求不同。

如果你在做听歌软件,开发者如果愿意的话,还可以一边看电影,一边听歌,一边聊qq。 有些直播软件可以看直播,也可以同时发送文字。 这不是聊天的功能吗?

到底是使用多线程还是使用多进程? 必须研究多线程和多进程的区别、优缺点。

多线程意味着在一个APP应用程序中,多线程可以共享所有全局资源(硬件资源、内存、硬盘、输入/输出、数据、)。

请注意,它是全局资源。 每个多线程都有一个专用堆栈,数据不能共享。 多线程共享一个全局资源,因此开销小,线程切换容易,通信简单

、全局区域数据通信(全局变量、全局堆、指针、链表、队列等)是冲突问题,与同步和互斥相关。 例如,有一个线程正在考虑

要输出数据并打印到显示器上,一个串行端口不能同时使用吧。 必须是排他性的。 谁先用,谁先占有,或者比如说,我在队列里写数据。 另一个读数据。 不能同时写吧。 写的时候,没有写完,读得很早,堆栈指针偏移,写数据的线程,结果就是写数据。

或者线程同步时,同步是指什么? 例如,我听歌的时候,一边缓存歌曲,一边播放歌曲。 缓存后,我会播放歌曲。 并不是我没有缓存歌曲。 播放歌曲吧。 一定是第一、第二。 这就是同步的概念。 多线程通信简单,创建简单,系统管理简单,切换简单,可见在许多开发中实现了多线程。

多进程的优缺点是,在一个系统上运行多个程序时,每个程序消耗4g的内存,不能在各个全局区域共享数据,通信麻烦,切换时开销大,消耗资源通信方式经常使用网络、共享存储器。

好处是容易管理各自的事情。 如果每个都互不干扰,一个线程死了,整个过程就会崩溃。 但是,其他的过程不会死。 在一个大系统中,如果只有一个线程死了,影响了整个系统,这就完了。 例如,开飞机,在两个发射机上,如果一个坏了,其他的过程会起作用,不会掉下来死。 有一个引擎,就等死。不影响看电影哦。 虽然你做了你的事,与我无关,但有些系统考虑到安全问题,为了防止马上死亡,会分别回去,采用多个流程。 我能想到的,还有汽车。 现在汽车电子发达了,听歌,看电影,自动驾驶,妈妈,突然音乐卡片死了,自动驾驶,那就完蛋了,但汽车系统,肯定不是多线程的

所以,毕竟多线程、多进程,根据需要,简单的产品,多线程容易开发,复杂的系统,多进程,容易开发。 例如,开发听音乐的软件,需要制作多个流程,一边缓存音乐,一边播放歌词,显示ui画面吗? 完全不需要。 通信数据的交换很复杂,死了。 卡片也是可能的。 多线程一个就能轻松完成。 交换数据和开发小偷很简单。

最终,总结起来,多线程是指进程中包含的进程。 一个进程可以有多个线程,也可以只有一个。 例如,关于一个main函数到最后,即使我按下按钮切换歌曲,你还在工作听歌,还没听我说话。 垃圾、卡片死了,会摔倒的。

系统可以运行多个进程。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。