美文网首页
什么时候需要用到多进程/多线程

什么时候需要用到多进程/多线程

作者: 不要重不要重 | 来源:发表于2019-07-14 13:24 被阅读0次

当一个系统需要并发的时候,就需要用的多线程/多进程
曾经我在面对redis的设计上,犹豫了,redis靠i/o复用一样实现高吞吐。
那么在什么情况下,需要多线程呢? 提高响应速度。

这里首先来分析一下redis的缺点,假如redis在执行一个非常耗时的操作,比如说union,那么晚于union 的命令都要被堵塞,直到这个命令处理完,才能被处理。
这里就是一个需要用到多线程的地方,假如redis的处理方是多线程的,一个线程的堵塞,并不会影响别的线程,虽然这样也会增加很多线程间互斥的开销。
接着讲几种模型,半同步半异步的网络模型,几乎都是一个线程/进程用于监听,accept,或者有一个锁,抢到的进程,就拥有处理权。

先简单对比一下:
多进程优点:进程增减容易,进程互不干扰可以专心干自己的事情,效率高些,调试起来也方便些
多进程缺点:进程数大于cpu核数,又比较繁忙,导致频繁进行上下文切换会严重降低整体效率
多线程优点:上下文切换问题没那么严重,线程间可以方便地共享数据
多线程缺点:共享数据的时候需要小心,坑多,会增加一定代码复杂度个人倾向于一般尽量采用多进程,轻松舒服。
当涉及较多同步阻塞操作时,或者不得不需要较多实例时考虑多进程。

相关文章

  • python3 并发编程

    线程和进程区别:需要增加 什么时候用线程、什么时候用进程 多线程 threading 构造函数 实例:和单线程加入...

  • 什么时候需要用到多进程/多线程

    当一个系统需要并发的时候,就需要用的多线程/多进程曾经我在面对redis的设计上,犹豫了,redis靠i/o复用一...

  • 简单了解进程、线程、协程

    当单任务不能满足工作的需要,只是需要使用多任务,多任务分为多进程,多线程,多协程 先有进程,进程创建线程,线程依附...

  • 【Java 基础你一定要掌握的知识点】多线程

    Java 给多线程编程提供了内置的支持。在多线程编程之前,我们需要先了解什么是线程。 进程和多线程简介 进程:进程...

  • 多线程入门

    一、多线程 1、概念: 多任务同时执行就是多线程,如果没有任务,就不需要使用多线程 线程和进程之间的区别: 进程:...

  • 使用率超高的多线程开发

    多线程的那些事 何为线程、多线程线程:比进程更小的执行单元,每个进程可能有多条线程,线程需要放在一个 进程中才能执...

  • 一个多线程、多进程的脚本

    IO 密集多尽量用多线程,CPU 密集尽量用多进程

  • python3多线程

    最近在做爬虫,语音,视频合成,需要使用多线程,多进程的模型。做个学习使用记录。 使用多线程还是使用多进程,怎么样来...

  • 浅谈iOS中多线程开发

    目录: (一)线程与进程之间的区别 (二)为什么需要学习多线程 (三)多线程任务执行方式 (四)多线程执行的...

  • Java多线程(一)

    多线程介绍 在介绍多线程之前,应该要先了解一下线程和进程的概念。 进程进程是指正在运行的程序和程序运行时需要的系统...

网友评论

      本文标题:什么时候需要用到多进程/多线程

      本文链接:https://www.haomeiwen.com/subject/vedohctx.html