discard和abandon有什么区别?