有很多文章解释了 SQLite 的多线程访问问题,但我找不到任何简单的解决方案。如何从多个线程同时工作的 Web 服务器访问 SQLite?
来源(仍然没有解释任何简单的解决方法):
在此代码示例中,来自r2d2 的 Github 页面:
fn main() {
let manager = r2d2_foodb::FooConnectionManager::new("localhost:1234");
let pool = r2d2::Pool::builder()
.max_size(15)
.build(manager)
.unwrap();
for _ in 0..20 {
let pool = pool.clone();
thread::spawn(move || {
let conn = pool.get().unwrap();
})
}
}
Run Code Online (Sandbox Code Playgroud)
为什么要Pool在循环中克隆结构体?