擅长解决性能问题以及Java系统疑难杂症
建议参考ConcurrentHashmap的实现方式,分段锁&乐观锁的实现方式
db.collection.update(
query,
update,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
upsert设置为true,multi为true
估算线程池需要综合考虑如下几个因素
1、程序所部署服务器的CPU核数,假定该服务器上没有其他进程,实际的线程数可以按照CPU核数*2 来估
2、数据并发处理量,这个必须基于1的结果来设定,假设服务器是4核机器,程序的线程池比较宽松的可以设置为8
以上都必须建立在程序没有明显的性能问题基础上,否则很容易将服务器的线程打满(影响文件句柄以及cpu switch)