跨分叉进程使用相同的mysql连接好吗?

sirbozc5  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(206)

这样做好/安全/可靠吗?为什么?

int main()
{
    MYSQL *mysqldbconn = mysql_init(NULL);

    if(mysqldbconn != NULL)
    {
        if(mysql_real_connect(mysqldbconn, host,
                              user, password,
                              NULL, port, NULL, 0) != NULL)
        {
            pid_t pid = fork();
            if(pid >= 0)
            {
                if(pid == 0)
                {
                    mysql_query(mysqldbconn, "insert into `test`.`abc`(`x`, `y`) values (1, 2)");
                    exit(0);
                }
                else
                {
                    mysql_query(mysqldbconn, "insert into `test`.`abc`(`x`, `y`) values (3, 4)");
                    usleep(1000000);
                }
            }
        }
    }

    return 0;
}

我想知道我是否应该为每个子进程打开一个新的连接,或者我可以简单地在开始时连接一次,然后在每个分叉的子进程中使用它。上面的使用示例是否可能导致危险的数据竞争?是 mysql_query 原子的?
谢谢你的建议。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题