并发编程的三大特性