GXB's Blog

  • 首页
  • 学习笔记
    • C++
    • golang
    • javascript
    • python
  • 工具分享
  • 其它
C++
C++

C++多线程shared_mutex以及读写锁应用

在前面的三讲中我们使用的mutex都是普通的std::mutex,这里介绍一下shared_mutex,版本为C++17 std::shared_mutex的底层实现时操作系统 提供的读写锁,在读多写少的情况下,该shared_mutex比mutex更加高效。 它提供了常用的四种方法: lock和unlock分别用于获取写锁和解除写锁 lock_shared和unlock_shared分别用于获取读锁和解除读锁 写锁模式称为排他锁,读锁模式称为共享锁。 c++11和c++14标准中分别引入unique_lock和s…

2026年4月24日 0条评论 0点热度 0人点赞 admin 阅读全文
C++

使用std::future特性进行异步编程

在异步编程模式下,一般会有这样的场景,即一个线程(生产者)准备好一个任务后,需要通知一个或者多个其他线程(消费者)进行处理,这个时候我们想到了mutex,但是互斥锁只是保护临界资源,在这种场景下是不适用的。对,这个时候可以用条件变量,但是条件变量使用起来特别繁琐,需要mutex配合使用,虽然在C++11下对条件变量以及mutex进行了RAII封装,分别是std::condition_variable以及std::unique_lock(不能使用std::lock_guard),但是用起来还是不够简洁。 在C++11…

2026年4月24日 0条评论 1点热度 0人点赞 admin 阅读全文
C++

C++ 时间戳和string相互转换

在现代语言,比如golang或python中时间戳和string之间相互转换是很方便的,C++标准库中没有时间戳和string相互转换的函数,需要我们手动封装一下。 //用time()取得当前时间 (秒数), 利用localtime() 转换成struct tm 再利用mktime()将struct tm转换成原来的秒数。 #include <time.h> main(){ time_t timep; struct tm *p; time(&timep); printf("time() : %d…

2026年4月24日 0条评论 6点热度 1人点赞 admin 阅读全文

近期文章

  • 深入理解Go语言中的闭包
  • 告别昂贵的云服务器:用 frp 将你的电脑“搬”到公网
  • 超星学习通刷课教程与刷课脚本分享
  • C++多线程shared_mutex以及读写锁应用
  • 使用std::future特性进行异步编程

近期评论

您尚未收到任何评论。

COPYRIGHT © 2026 GXB's Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang