1. commit()会返回一个布尔值,表示处理成功还是失败;apply()没有任何返回值。
2. commit()和apply()都是原子操作,是线程安全的。commit()先提交到内存,然后同步修改文件;apply()先提交到内存,然后异步修改文件。前者是完全同步,如果并发操作比较多,效率会很低。而后者在并发场景下效率会高很多。
3. SP支持多进程同步,只需要设置mode为MULTI_PROCESS即可,但是由于是基于文件操作,不能完全解决并发问题,解决方法为采用更加安全的进程间通信方式,比如ContentProvider