synchronized(service)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/741ec58d2b8c7c6994f5992eb2269f7f.png)
newSingleScheduledExecutor 线程池
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/08c7a20e49a4e148baae92024c8ab0d5.png)
并发写的情况
- 缩小锁的粒度 为Service。
这样只要是与加锁的servcie不同,就可以并发的写不同service就不会有冲突了 - 另外用于执行任务的线程池是Single,只有一个线程。所以也降低了冲突。
并发读写的情况
Nacos在更新实例列表时,会采用CopyOnWrite技术,首先将旧的实例列表拷贝一份,然后更新拷贝的实例列表,在采用更新后的实例来覆盖旧的实例列表。
这样在更新过程中就不回队赌实例列表的请求产生影响,也不会出现脏肚肚问题了。