zoukankan      html  css  js  c++  java
  • 多线程的基本概念

    <!doctype html>

    多线程管理

    多线程管理

    进程
    什么是进程

    -进程是指在系统中正在运行的一个应用程序

    -每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内

    • 是CPU分配资源和调度(执行任务)的最小单位

    • 同一个进程内的线程共享进程的资源。

    线程
    什么是进程

    -一个进程(程序)的所有任务都在线程中执行

    • 线程是CPU调用(执行任务)的最小单位

    -作用

    • 负责程序运行的内存分配 每一个进程都有自己的独立的虚拟空间

    多线程

    多线程的概念
    • 1个进程中可以开启多条线程,在同一时间,一个线程执行一个任务,CPU快速地在多条线程之间调度(切换)

    • 1个线程中任务的执行是串行的

    • 如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务

    • 也就是说,在同一时间内,1个线程只能执行1个任务

    • 总结:`要开多条线程,将耗时的操作放在子线程,主线程负责UI界面的刷新

    -作用

    • 执行路径 负责程序中代码实际执行

    子线程的创建于销毁

    • 当线程中的任务执行完毕后,由系统自动销毁,不需要我们销毁
    多线程的原理
    • 同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)

    • 1个进程中可以开启多条线程,在每个线程添加不同的任务

    • 多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)

    • 如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象

    注意

    • 一条主线程占用内存中栈区1M, 子线程占用512KB
    • 线程不是无止境的开辟子线程

    -多线程的优势:

    • 1.充分利用多核优势,将不同线程的任务分配给不同的CPU执行,进入”并行”运算

    • 2.将耗时的操作放到子线程中去执行,由主线程负责跟新主UI界面,是程序更加流畅,用户体验效果更佳

    -多线程弊端 1,新建线程会消耗内存空间和CPU时间

    多线程技术的本质

    • 注意:多线程技术是为了并行执行多项任务,不是提高单个算法的本身效率
  • 相关阅读:
    POJ 2653 Pick-up sticks [线段相交 迷之暴力]
    POJ1556 The Doors [线段相交 DP]
    POJ 3304 Segments[直线与线段相交]
    POJ2318 TOYS[叉积 二分]
    挖坑
    HDU3488 Tour [有向环覆盖 费用流]
    BZOJ 3438: 小M的作物 [最小割]
    POJ 2125 Destroying The Graph [最小割 打印方案]
    网络流算法与建模总结
    CF266D. BerDonalds [图的绝对中心]
  • 原文地址:https://www.cnblogs.com/mshong1616/p/5074659.html
Copyright © 2011-2022 走看看