zoukankan      html  css  js  c++  java
  • 《Windows核心编程》——线程

    • 组成:线程内核对象+线程栈
    • 多线程应用程序:
      • 通常情况下,一个应用程序拥有一个用户界面线程,用于创建所有窗口,并且有一个GetMessage循环。
      • 进程中的所有其他线程都是工作线程,它们与计算机或 I/O相关联,但是这些线程从不创建窗口。
      • 一个用户界面线程通常拥有比工作线程更高的优先级,因此用户界面负责向用户作出响应。
    • 线程函数:
      • 主线程的进入点函数的名字必须是main、wmain、WinMain或wWinMain。
      • 与这些函数不同的是,线程函数可以使用任何名字。
      • 由于给你的主线程的进入点函数传递了字符串参数,因此可以使用ANSI/Unicode版本的进入点函数:main/wmain和WinMain/wWinMain。
      • 可以给线程函数传递单个参数,参数的含义由你而不是由操作系统来定义。因此,不必担心ANSI/Unicode问题。
    • CreateThread函数:
       1 typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID pvarg);
       2 
       3 HANDLE CreateThread(
       4    LPSECURITY_ATTRIBUTES lpsa, 
       5    DWORD cbStack, //线程栈大小,WinCE默认64K
       6    LPTHREAD_START_ROUTINE lpStartAddr, //入口点函数
       7    LPVOID lpvThreadParam, 
       8    DWORD fdwCreate, 
       9    LPDWORD lpIDThread
      10  );
    • 终止线程:
      •  线程函数返回(最好使用这种方法)。
      •  通过调用ExitThread函数,线程将自行撤消(最好不要使用这种方法)。
      •  同一个进程或另一个进程中的线程调用TerminateThread函数(应该避免使用这种方法)。
      •  包含线程的进程终止运行(应该避免使用这种方法)。
  • 相关阅读:
    最大子段和之可交换
    最大子段和之M子段和
    前端开发-日常开发沉淀之生产环境与开发环境
    开发技巧-解决打开谷歌浏览器跳转问题
    前端调试-跨域解决方式
    postman自动化,测试脚本
    自动化脚本测试,postman使用沉淀
    HMAC-SHA256 签名方法各个语音的实现方式之前端JavaScriptes6
    React中redux表单编辑
    前端JavaScript获取时间戳
  • 原文地址:https://www.cnblogs.com/dahai/p/2819092.html
Copyright © 2011-2022 走看看