python是多线程还是单线程,python多线程和java多线程的区别

  python是多线程还是单线程,python多线程和java多线程的区别

  一、多进程多线程区别

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

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

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

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

  其实是不同的APP应用。对于一个Windows和Android来说,宏观上是同时并行,微观上是串行运行

  这是很清楚的。理论上唱歌、qq、微信、听电影也可以多线程处理。但是,为什么要使用多个进程呢?只是业务需求不同而已。

  如果是做听歌软件的,开发者喜欢的话可以看电影,听歌,用qq聊天。有些直播软件可以一边看直播,一边发文字。这不就是聊天的功能吗?

  要用多线程还是多进程?我们必须研究多线程和多进程之间的区别和优缺点。

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

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

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

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

  或者说线程同步的时候,同步是什么意思?比如我听歌的时候一边放歌一边缓存。缓存后,我将播放歌曲。我不是没有缓存歌曲。放这首歌。肯定是第一第二。这就是同步的概念。多线程通信,创建,系统管理,切换都很简单,说明多线程在很多开发中已经实现了。

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

  好处是很容易管理好自己的事情。如果大家互不干涉,一个线程死了,整个进程就崩溃了。但是,其他进程不会消亡。在一个大系统中,如果只有一个线程死了,影响到整个系统,那就完了。比如开飞机的时候,两个发射器上,一个坏了,其他进程都工作,不会掉下来摔死。有发动机,就等着死吧。不影响看电影。虽然你做了你的事,但与我无关,有些系统考虑到安全性,为了防止立即死亡,会分开回去,采取多个流程。就我所能想到的,有车。现在汽车电子发达,听歌,看电影,自动驾驶,妈,突然音乐卡死了,自动驾驶,那就完了,但是汽车系统肯定不是多线程的。

  所以,毕竟多线程,多进程,根据需要,简单的产品,多线程好开发,复杂的系统,多进程好开发。比如开发听歌的软件,需要做多个进程来缓存音乐、播放歌词、显示ui图片吗?一点也不。数据的交换是复杂而死的。卡片也可以。多线程可以轻松完成。交换数据和开发盗贼很简单。

  最后总结一下,多线程是指一个进程中包含的进程。一个进程可以有多个线程,也可以只有一个。举个例子,关于一个主功能到最后,即使我按下按钮切换歌曲,你还在工作听歌,还没听我说。垃圾和卡都是死的,会倒的。

  系统可以运行多个进程。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: