本地分支不需要加local,远程仓库一般需要加origin
git merge、git pull都可以加 -- allow-unrelated-histories,这在你的项目已经开发完毕,想推送到一个新的远程仓库挺有用。
通过先pull Origin/master,合并到本地仓库后,再push到远程分支,再在远程提交pull request,最终合并到远程master,是最常规稳妥的解法
git的merge用到了二叉树的最近公共祖先算法,很有趣的一道简单题
LCR 194. 二叉树的最近公共祖先 - 力扣(LeetCode)
顺便谈谈多线程在项目实际开发中的应用
1.多接口之间的数据没有依赖关系,在合并时可以用到线程池+future来避免OOM
2.将索引数据导入到ES中时可以用到线程池+CountDownLatch
3.异步线程,使用@Async注解,避免下一级方法影响到上一级方法,可以使用异步线程调用下一级方法
每个线程内都有一个ThreadLocalMap类型的成员变量,用来存储资源对象,其key为弱引用,但是值为强引用,因此可能造成内存泄露问题,解决方法是及时remove掉所有线程关联的资源值