• 多线程的好处


    多线程有三个好处:

    • 更好的资源分配
    • 有些情况下,程序设计更简单
    • 程序的性能提高

    Better resource utilization

    假设有一个应用用来读取磁盘里的文件并处理。读取文件需要5秒,处理文件需要2秒。如果需要读取、处理两个文件,在单线程的清下,时间消耗为

    5秒用来读取文件 A
    2秒用来处理文件 A
    5秒用来读取文件 B
    2秒用来处理文件 B

    =========================

    总共花费 5 + 2 + 5 + 2 = 14秒

    如果使用两个线程来处理

    5秒用来读取文件 A
    5秒用来读取文件 B + 2秒用来处理文件 A
    2秒用来处理文件 B

    =========================

    总共花费 5 +5 + 2 = 12秒

    在单线程的情况下,从磁盘读取文件的时候,CPU什么事情都干不了,只能等待读取完毕。如果在多线程的情况下,可以在文件A读取完毕的时候,取出一个线程处理文件A,另外一个线程去读取文件B。这样就可以加快程序的运行速度。

    Simpler Program Design

    如果采用单线程来实现上述的需求,需要同时关注文件的读取和处理状态。相反,如果使用两个线程,每个线程只处理一个文件就行了。程序设计更简单。

    More responsive programs

    如果有一个服务器,负责接收请求并处理请求。在单线程的情况下,只能是接受请求并处理完请求才能接受下一个请求,在处理请求的过程中,如果有下一个请求过来的话,这个请求只能等待

    while (server is active) {
    	listen for request
    	process request
    }
    

    如果是多线程,可以使用监听线程负责接收请求,接收到请求之后转发给工作线程去处理,监听线程立马返回去继续监听请求

    while (server is active) {
    	listen for request
    	hand request to worker thread
    }
    
  • 相关阅读:
    JAVA中toString方法
    编辑器未包含main类型解决方法
    Ubuntu中设置环境变量详解
    vim中执行shell命令小结
    vim使用手册
    vim命令总结
    如何修改远程桌面连接3389端口
    Linux磁盘与文件系统管理
    文件与文件系统的压缩与打包命令
    Mininet VM设置笔记
  • 原文地址:https://www.cnblogs.com/okadanana/p/5873664.html
Copyright © 2020-2023  润新知