且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

c++ - 多线程异步回调的疑问?

更新时间:2022-10-15 17:47:11

  1. 调用写数据库的方法的时候,传入回调函数

  2. 写数据库的方法被调用的时候会启动另一个线程做真正的数据库写入操作,线程启动后该方法立即返回。

  3. 当做数据库写入操作的线程执行完毕后,调用在第一步传入的回调函数。

// 定义Callback回调函数接口
function Callback(...);

function writedb(string sql, Callback callback) {
    // 创建新的线程来进行DB操作
    Thread t = new Thread() {
        // 更新DB
        ...
        // 调用回调函数
        callback(...);
    }
    t.start();
    return;
}

function main() {
    ...
    writedb(sql, new Callback(...) {
        // 回调函数代码
        ...
    });
    // 其他代码,将与db操作同时进行
    ...
}