justin.z_个人页

个人头像照片 justin.z
0
3
0

个人介绍

擅长解决性能问题以及Java系统疑难杂症

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2019-07-17

    [@倚贤][¥20]为了充分利用cpu加快运算,这时候我们就会用到多线程,但是用到多线程时就会面对一个共享变量的问题。为了共享变量的同步我们对线程 代码加锁。但是加锁过程中又会让其他线程进行等待这样就会耗时很大。 那请问,我们应该怎么对待共享变量,使得多线程程序运行结果正确而不会像加锁那样造成等待的耗时?原子操作还是?原子操作内部实现是一个期望值和当前值比较?如果一直比较失败呢?那作为java开发者应该处理多线程?怎么样编码好多线程程序?

    建议参考ConcurrentHashmap的实现方式,分段锁&乐观锁的实现方式

    踩0 评论0
  • 回答了问题 2019-07-17

    [@倚贤][¥20]spring-data-mongodb中,怎么高效的执行批量"保存或更新"操作(upsert),谢谢

    db.collection.update(
    query,
    update,
    {

     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>

    }
    )

    upsert设置为true,multi为true

    踩0 评论0
  • 回答了问题 2019-07-17

    [@talishboy][¥20]如何合理地估算线程池大小?

    估算线程池需要综合考虑如下几个因素
    1、程序所部署服务器的CPU核数,假定该服务器上没有其他进程,实际的线程数可以按照CPU核数*2 来估
    2、数据并发处理量,这个必须基于1的结果来设定,假设服务器是4核机器,程序的线程池比较宽松的可以设置为8
    以上都必须建立在程序没有明显的性能问题基础上,否则很容易将服务器的线程打满(影响文件句柄以及cpu switch)

    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息