
1 codehz 11 小时 4 分钟前 为什么这种 1 秒钟就能搜索到的内容要放在这里问。。。 https://wiki.postgresql.org/wiki/Multithreading |
3 crazzy 10 小时 51 分钟前 你问这些问题,大概率证明你思考了,但是却只思考了一点点。我是想回答又不想回答你,但是我既然准备回复你,就不做无意义回复。 进程、线程、协程甚至于 goroutine 都是并发模型,不同的模型因为实现机制不同,在不同的场景下各有优劣,并不是绝对的优劣势。 例如,进程的上下文切换开销大,线程的上下文切换开销小,那么单纯考虑上下文切换开销,我们就选择多线程模型吗?为什么不考虑协程或 goroutine ? PostgreSQL 选择多进程模型是因为在它最初开始开发的时候,线程在各个操作系统中是一个很新颖的东西,而进程却很成熟了,没得选。 对于数据库这种有很多共享数据的软件,从理论上多线程就比多进程有优势,所以后期很多数据库都是多线程模型。 - 有没有讨论过改、有没有必要改;要学会自己收集信息,邮件列表是公开的,不回答 - 在一定要改动的情况下,必要和非必要、好改和不好改的区分;在你没有阅读过源码、了解其生态的情况下,仅有一个答案有什么意义?不回答 - 改成多线程模型后的收益;这个问题问的,你可能都没有深入的使用过 PostgreSQL ,也不了解并发模型,可能你就是制造一个噱头来提问的吧... |