• 多線程幾個方法說明


    (1) CreateThread

    l      功能——创建一个在调用进程的地址空间中执行的线程

    l      格式

    HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,

    DWORD dwStackSize,

    LPTHREAD_START_ROUTINE lpStartAddress,

    LPVOID lpParamiter,

    DWORD dwCreationFlags,

    Lpdword lpThread  );

    l      参数说明

    lpThreadAttributes——指向一个LPSECURITY_ATTRIBUTES(新线程的安全性描述符)

    dwStackSize——定义原始堆栈大小。

    lpStartAddress——指向使用LPTHRAED_START_ROUTINE类型定义的函数。

    lpParamiter——定义一个给进程传递参数的指针。

    dwCreationFlags——定义控制线程创建的附加标志。

    lpThread——保存线程标志符(32)

    (2) CreateMutex

    l      功能——创建一个命名或匿名的互斥量对象

    l      格式

    HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes,

    BOOL bInitialOwner,

    LPCTSTR lpName);

    l      参数说明

    lpMutexAttributes——必须取值NULL

    bInitialOwner——指示当前线程是否马上拥有该互斥量(即马上加锁)

    lpName——互斥量名称。

    (3) CreateSemaphore

    l      功能——创建一个命名或匿名的信号量对象

    l      格式

    HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,

                            LONG lInitialCount,

                            LONG lMaximumCount,

                            LPCTSTR lpName );

    l      参数说明

    lpSemaphoreAttributes——必须取值NULL

    lInitialCount——信号量的初始值。该值大于0,但小于lMaximumCount指定的最大值。

    lMaximumCount——信号量的最大值。

    lpName——信号量名称。

    (4) WaitForSingleObject

    l      功能——使程序处于等待状态,直到信号量hHandle出现(即其值大于等于1)或超过规定的等待时间

    l      格式

    DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);

    l      参数说明

    hHandle——信号量指针。

    dwMilliseconds——等待的最长时间(INFINITE为无限等待)

    (5) ReleaseSemaphore

    l      功能——对指定信号量加上一个指定大小的量。成功执行则返回非0

    l      格式

    BOOL ReleaseSemaphore(HANDLE hSemaphore,

    LONG lReleaseCount,

    LPLONG lppreviousCount );

    l      参数说明

    hSemaphore——信号量指针。

    lReleaseCount——信号量的增量。

    lppreviousCount——保存信号量当前值。

    (6) ReleaseMutex

    l      功能——打开互斥锁,即把互斥量加1。成功调用则返回0

    l      格式

    BOOL ReleaseMutex(HANDLE hMutex);

    l      参数说明

    hMutex——互斥量指针。

    (7) InitializeCriticalSection

    l      功能——初始化临界区对象

    l      格式

    VOID InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection);

    l      参数说明

    lpCriticalSection——指向临界区对象的指针。

    (8) EnterCriticalSection

    l      功能——等待指定临界区对象的所有权

    l      格式

    VOID enterCriticalSection(LPCRITICAL_SECTION lpCriticalSection);

    l      参数说明

    lpCriticalSection——指向临界区对象的指针。

    (9) LeaveCriticalSection

    l      功能——释放指定临界区对象的所有权

    l      格式

    VOID LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection);

    l      参数说明

    lpCriticalSection——指向临界区对象的指针。

  • 相关阅读:
    1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标
    1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
    1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正
    1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形
    hreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
    IDEA使用从Eclipse过来的快捷键
    MD5工具类--可以直接拿来用不抛异常的MD5Util
    Eclipse安装PlantUML插件
    HttpServletResponse
    spring boot应用启动原理分析
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940764.html
Copyright © 2020-2023  润新知