线程互斥是什么意思_linux互斥锁析构函数自动解除

(5) 2024-06-12 18:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
线程互斥是什么意思_linux互斥锁析构函数自动解除,希望能够帮助你!!!。

互斥
相关问题
多线程下代码或资源的共享使用。
互斥的使用
1.创建互斥
HANDLE CreateMutex(
LPSECURITY_ATTRIBUTES lpMutexAttributes,//安全属性(废弃参数,置NULL)
BOOL bInitialOwner,//初始的拥有者TRUE/FALSE
LPCTSTR lpName //命名
);//创建成功返回互斥句柄
可等候的句柄,具备有信号和无信号的特点
bInitialOwner
TRUE-那个线程创建就那个线程具有互斥
FALSE-任何线程都不拥有它
特性:
a.独占性-在某个时间点上,只有一个线程拥有互斥,别的线程等待,除非这个线程扔掉后,别的线程才会拥有互斥
b.所有线程都没有互斥时,线程句柄有信号,如果有一个线程拥有互斥,线程句柄无信号
2.等候互斥
WaitFor… 互斥的等候遵循谁先等候谁先获取。
谁先等候,谁先获得互斥
3.释放互斥
BOOL ReleaseMutex(
HANDLE hMutex //互斥句柄
);
4.关闭互斥句柄
CloseHandle

错误示例代码(混乱)

#include <Windows.h> #include <stdio.h> DWORD CALLBACK myThreadProc1(LPVOID lpParam) { 
    char* szText = (char*)lpParam; while(1) { 
    //printf("%s\n",szText); for(int i = 0; i < strlen(szText);i++) { 
    printf("%c",szText[i]); Sleep(150); } printf("\n"); } } DWORD CALLBACK myThreadProc2

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复