zoukankan      html  css  js  c++  java
  • C++并发多线程(一)

    并发:两个或者更多的任务同时发生,一个程序同时执行多个独立的任务。

    以往计算机 单核CPU 某一个时刻只能执行一个任务 由操作系统调度 每秒钟进行多次所谓的任务切换
    并发的假象(不是真正的并发),这种切换(上下文切换)时要有时间开销的。

    线程

    每个进程(执行起来的可执行程序),都有一个主线程 这个主线程是唯一的 也就是一个进程中只能有一个主线程。
    当你执行要给刻执行程序 ,产生了一个进程后 这个主线程就随着这个进程默默启动起来了
    ctrl+f5运行这个程序的时候,实际上是进程的主线程来执行 这个main函数中的代码
    主线程与进程唇齿相依
    线程 用来执行代码的 一条代码的执行道路
    主线程是系统创建的 其他线程走的是别的道路 甚至去不同的地方
    每创建一个新线程 我就可以在同一个时刻 多干一个不同的是
    多线程(并发)
    线程并不是越多越好 每个线程 都需要一个独立的堆栈空间(1M) 线程间的切换要保存很多的中间状态;
    切换会耗费本该属于程序运行的时间;


    总结线程:
    线程是用来执行代码的
    把线程这个东西理解成一条代码的执行通路 一个新线程代表一条新的通路
    一个进程自动包含一个主线程 主线程随着进程默默的启动并进行 我们可以通过编码来创建多个其他现场呢g
    //建议创建的数量不超过200-300个,有的时候线程太多反而降低效率
    //因为主线程是自动启动的 所以一个进程中最少也是有一个线程(主线程)

    join():同步 用于阻塞线程,表示当前线程结束了,才可以执行后面的代码。

    detach():异步 非阻塞模式,由操作系统去调用线程。

  • 相关阅读:
    第六章实验报告
    第三次实验报告
    循环结构课后反思
    分支结构试验
    第七组509寝室课后习题4.34
    c语言实验报告
    第九章 结构体与共用体
    第八章实验报告(指针)
    第7章 数组实验报告
    函数与宏定义实验报告(2)
  • 原文地址:https://www.cnblogs.com/tsh292278/p/10675995.html
Copyright © 2011-2022 走看看