多线程概述

什么是线程?

线程是操作系统能够进行运算调度的最小单位。 它被包含在进程之中,是进程中的实际运作单位。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

什么是多线程?

多线程是指:一个程序内部存在多个线程同时执行。

使用多线程的目的

提高资源使用效率,从而提高程序的运行效率。

多线程优势

  • 发挥多处理器的强大能力
    由于基本的调度单位是线程,如果程序中只有一个线程,那最多只能在一个处理器上运行。在多个处理器中只能使用1个处理器的资源;在单个处理器中有助于程序获得更高的吞吐率。

  • 让并行处理场景更简单
    如果程序中为每种类型的任务都分配一个专门的线程,将异步I/O以及资源等待等问题分离出来。通过使用线程,可以将复杂并且异步的工作流进一步分解为简单并且同步的工作流,每个工作流都在单独的线程中运行,并在特定同步位置进行交互。

  • 简化异步事件的处理场景
    服务器应用程序在接受来自多个远程客户端的socket连接请求时,如果为每个连接都分配各自的线程并使用同步I/O,那么就会降低此类程序的开发难度。

  • 让用户界面响应更加灵敏
    程序中将UI线程和工作线程区分,使用户界面不会出现“冻结”现象。

多线程风险

  • 线程安全
    多个线程的执行操作顺序是不可预测的,从而导致产生一些并不想要的结果。

  • 活跃性问题
    例如线程A等待线程B持有的资源,而线程B永远不释放该资源,那么线程A将永远等待下去。

  • 性能问题
    在多线程程序中,当线程调度起临时挂起活跃线程并转而运行另一个线程时,就会频繁出现上下文切换操作,这种操作将带来极大的开销:保存和恢复执行上下文问切换操作,丢失局部性,并且CPU时间将更多地花在线程调度而不是在线程运行上。
    当线程共享数据时,必须使用同步机制,而这些机制往往会一直某些编译器优化操作,使内存缓冲区的数据无效,以及增加共享内存总线的同步流量。
    所有这些因素都将带来额外的性能开销。

原文地址 https://blog.csdn.net/u013560890/article/details/89316487

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值