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

  • 相关阅读:
    log4net 配置
    Sublime Text 2 安装Package Control和插件的两种方法
    Silverlight中ListBox的数据绑定
    在Silverlight 5 项目中创建单元测试项目
    const V.S readonly
    鼠标和键盘操作的全局钩子库
    数码管图片
    正则表达式
    ToString的格式化字符串
    C# Builder
  • 原文地址:https://www.cnblogs.com/WillingCPP/p/3003014.html
Copyright © 2011-2022 走看看