zoukankan      html  css  js  c++  java
  • 第六章 线程基础

    (1)线程包括什么?

    • 一个是线程的内核对象
    • 一个线程栈,用于维护线程执行时所需要的函数参数和局部变量

      进程从来不执行任何东西,它只是一个线程的容器。 线程在进程的地址空间内执行代码和处理数据。

      每一个线程都有一个上下文,后者包含在线程内核对象中,它反应了执行时cpu寄存器的状态.

    (2)终止运行线程

    • 线程函数结束返回(强烈推荐的)
    • 线程调用ExitThread杀死自己(尽量避免)
    • 同一进程或不同进程内的线程调用TerminateThread(尽量避免)
    • 包含线程的进程终止(避免)

    (3)线程终止时做什么?

    • 线程拥有的所有用户对象句柄会被释放
    • 线程的推出代码由STILL_ACTIVE编程ExitThread或TerminateThread的代码
    • 线程内核对象变为触发状态
    • 如果线程是进程最后一个线程,进程也推出
    • 线程内核对象计数器减1

    (4)线程创建和初始化

            

    (5)用_beginthreadex 而不要用CreateThread来创建线程,因为CreateThread创建的线程在使用某些函数会出现内存泄露

    (6)不要使用c/c++运行库函数_beginthread和_endthread而使用_beginthreadex和_endthreadex

  • 相关阅读:
    JAVA 框架
    npm安装超时,使用淘宝镜像
    使用vite搭建Vue3项目
    前端常用框架
    vue发布自己的组件库-vue3
    vue2升级vue3-基础教程
    Navicat Premium 15破解失败解决方案
    大屏
    vue使用高德地图
    vue生命周期及钩子函数
  • 原文地址:https://www.cnblogs.com/WillingCPP/p/3003014.html
Copyright © 2011-2022 走看看