加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

并发思想,代码控制-基于c++语言的管理

(2024-09-29 14:59:19)
分类: 接口类的哈
常用的三个层级:1、用C++ 的并发库 管理线程、2、同步操作,3、进行异步编程。

1、用C++ 的并发库 管理线程
#include
#include

void helloFunction() {
    std::cout << "Hello from a thread!\n";
}

class ThreadFunctor {
public:
    void operator()() const {
        std::cout << "Hello from thread functor!\n";
    }
};

int main() {
    std::thread t1(helloFunction);  // 使用函数创建线程
    ThreadFunctor functor;
    std::thread t2(functor);  // 使用函数对象创建线程

    // 确保在退出 main() 之前线程都已经完成
    t1.join();
    t2.join();

    return 0;
}

2、同步操作(互斥锁 std::mutex)对需要占用的资源加锁,以防你进行写操作 别人也同时写操作,

#include
#include
#include

std::mutex mtx;  // 创建互斥锁

void printBlock(int n, char c) {
    mtx.lock();
    for (int i = 0; i < n; ++i) { std::cout << c; }
    std::cout << '\n';
    mtx.unlock();
}

int main() {
    std::thread t1(printBlock, 50, '*');
    std::thread t2(printBlock, 50, '$');

    t1.join();
    t2.join();

    return 0;
}

主函数实现两个线程同时 输出打印结果,通过std::mutex   实现了 每个线程占用资源的时候 进行资源锁定  以防别人同时 修改同一个数据。

3、进行异步编程。
#include
#include

int findAnswer() {
    return 42;
}

int main() {
    auto fut = std::async(findAnswer);
    std::cout << "The answer to life, the universe and everything is " << fut.get() << std::endl;

    return 0;
}

用 std::async 和 std::future 实现的 再协程级别 进行异步并发处理。  即为 比如 一个 厨师,炒菜时候,在给我做红烧带鱼等待的时候,还给我顺手炒了个 鸡蛋青椒。
你想多美有多美并发思想,代码控制-基于c++语言的管理

关于敲代码工具 IDE:以上都很简单 其实关键字 一敲打, 如 c++ 并发 , 代码和详细解释 直接该来的就来了,。看一遍就明白,但是不看就 永远像是一个 高深的科学 被吓着了。
你只需要一个   windows电脑   安装好了  visual studio 2022 IDE的 编辑器就行了,
其他就是拷贝里面 多 debug几次就能明白 并发 加速的思想啦。这些基本够入门嘎嘎,
其他主要的实现 计算机干活 ,全部是 这些 语言的相应功能包        std::async  的。等给 实现好了,不用自己管。



关于语言和包:
c++ 应该是 终极 的优质语言,暂时。
其实无所谓 puthon,还是go吧应该思想嗾使就这些,
包名也就这样写了基本上,没啥大的改动。个别语言可能用的字符字母有点区别罢了。

英语单词认识了基本上直接读 不是傻子就可以看懂。

编辑器IDE 只要会打开 ,就算会用,剩下的就只是多悄悄 用起来熟悉的事情罢了。

。。。。。。其他专业的 别来喷我哈哈并发思想,代码控制-基于c++语言的管理并发思想,代码控制-基于c++语言的管理

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有