1. commit()會返回一個布爾值,表示處理成功還是失敗;apply()沒有任何返回值。
2. commit()和apply()都是原子操作,是線程安全的。commit()先提交到內存,然后同步修改文件;apply()先提交到內存,然后異步修改文件。前者是完全同步,如果并發操作比較多,效率會很低。而后者在并發場景下效率會高很多。
3. SP支持多進程同步,只需要設置mode為MULTI_PROCESS即可,但是由于是基于文件操作,不能完全解決并發問題,解決方法為采用更加安全的進程間通信方式,比如ContentProvider