zoukankan      html  css  js  c++  java
  • 线程

     
    #线程组成:内核对象,线程堆栈
     
    #线程和进程的区别
    >子进程和父进程有不同的代码和数据空间
    >多个线程共享数据空间,每个线程有独立的执行堆栈和程序计数器
    >多进程是为了节约时间,充分利用CPU。多线程视情况而定
    >进程使用的资源比线程多得多
     
    #线程创建
    每个线程都需要有一个进入点函数,一个程序的主线程的进入点函数必须是main , wmain , WinMain或 wWinMain等。
    如果要在进程中创建一个辅助线程,则需要定义一个类似这样的进入点函数:
    DWORD WINAPI ThreadFunc (PVOID pvParam )
    {
        DWORD dwResult = 0 ;
        ...
        return (dwResult)
     }
     
    #线程函数特征
    >主线程的进入点函数必须是main , wmain , WinMain或 wWinMain等,普通线程则无要求。
    >线程函数必须返回一个值,作为退出码。
    >线程函数必须尽可能使用函数参数和局部变量,避免使用全局变量和静态变量。
     
    #创建线程 CreateThread
     
    #线程终止方法
    >线程函数返回
    >调用ExitThread函数(不推荐)
    >同一个进程或另一个进程中的线程调用TermiateThread函数
     
    >在进程终止时撤销线程,ExitProcess 和 TerminateProcess 可以用来终止线程的运行
     
    #线程挂起和恢复 
    >创建线程时,可以传入标识参数令线程挂起
    >调用SupendThread函数可以挂起线程
    >调用ResumeThread函数可以恢复线程
     
    #线程优先级
    >一个线程首次被创建时,优先级等同于所属进程优先级
    >SetThreadPriority函数可以改变线程相对所属进程的优先级
    >线程优先级 = 进程基本优先级 + 线程相对优先级
    >进程基本优先级:实时,高,高于正常,正常,低于正常,空闲
     
    #线程休眠
    Sleep()
     
     
     
     
     
     
     
     
     





  • 相关阅读:
    [HNOI2006]鬼谷子的钱袋
    一日游与两道题
    [HNOI2009]梦幻布丁
    [Ahoi2009]self 同类分布
    50 days before NOI2017
    Topcoder SRM 606 div1题解
    Topcoder SRM 605 div1 题解
    Topcoder SRM 604 div1题解
    Topcoder SRM 603 div1题解
    Topcoder SRM 602 div1题解
  • 原文地址:https://www.cnblogs.com/fysola/p/4818040.html
Copyright © 2011-2022 走看看