初步学习c++ createthread()多线程

例子
https://www.cnblogs.com/XiHua/p/5028329.html

在C/C++中可以通过CreateThread函数在进程中创建线程
https://blog.csdn.net/u012877472/article/details/49721653

当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程
https://www.cnblogs.com/rosesmall/p/14843693.html

多线程--第一次亲密接触CreateThread与_beginthreadex本质区别
https://www.cnblogs.com/lca1826/p/6612186.html

互斥锁
要使用的这个线程需要将这个资源(取钱这个过程)先“锁”起来,然后用好之后再解锁,这期间别的线程就无法使用了,其他线程的也是类似的过程。

    //创建一个锁
    hMutex1  =CreateMutex(NULL,FALSE,NULL);

DWORD WINAPI MyThread2(LPVOID lpParamter)
{
    while (1)
    {
    //没上锁的话就自己锁上,否则等着
        WaitForSingleObject(hMutex1,INFINITE);
        flag=!flag;
        cout << "MyThread1 Runing :"<<"线程2"<<" "<<flag<< endl;
        Sleep(1000);
     //解锁
        ReleaseMutex(hMutex1);
    }
}
https://www.cnblogs.com/ssss429170331/p/5514697.html

std::mutex为线程加锁

    //数据处理函数,会持续运行
    void ProcessData()
    {
        while (true)
        {
            m_ProcessMutex.lock();
            Sleep(100);    //模拟数据处理的耗时
            m_nData++;
            std::cout << m_nData << std::endl;
            m_ProcessMutex.unlock();
        }
    }
    void SetData(int nData)
    {
        m_ProcessMutex.lock();
        this->m_nData = nData;
        m_ProcessMutex.unlock();
    }
private:
    HANDLE m_hProcessThread;    //数据处理线程句柄
    int m_nData;                //模拟线程处理的数据
    DWORD m_dwThreadID;            //线程ID
    std::mutex m_ProcessMutex;    //数据处理操作互斥量
https://blog.csdn.net/logic9169/article/details/105299791
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WX Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值