https://img-blog.csdnimg.cn/9fa00f1b7e4947588dc2e9788485129c.jpeg

学习如逆水行舟,不进则退!

go语言业务代码一键逆向生成

go_project_quickstart 快速开始 要求 Go 1.18 及以上版本 安装 1.下载并安装 gin: go get -u github.com/ACking-you/quickstart_project 2.将 gin 引入到代码中: import "github.com/ACking-you/quickstart_project" 3.一键根据数据库快速逆向生成所有业务代码: import ( "github.com/ACking-you/quickstart_project" "github.com/ACking-you/quickstart_project/util"

细粒度锁线程安全队列实现

包含同步语义的简单实现 template <typename T> class ThreadSafeQueue { public: void Push(T new_value) { std::lock_guard<std::mutex> lk(m_mtx); m_queue.push(std::move(new_value)); m_cond.notify_one(); // 1 } void WaitAndPop(T &value) // 2 { std::unique_lock<std::mutex> lk(m_mtx); m_cond.wait(lk, [this] { return !m_queue.empty(); }); value = std::move(m_queue.front()); m_queue.pop(); } std::shared_ptr<T> WaitAndPop() // 3 { std::unique_lock<std::mutex> lk(m_mtx); m_cond.wait(lk, [this] { return !m_queue.empty(); }); // 4 std::shared_ptr<T> res( std::make_shared<T>(std::move(m_queue.front()))); m_queue.pop(); return res; }