视频中将同步异步的时候,只是提到了同步处理不会开辟新的线程,异步处理会开辟新的线程。我个人理解是,同步处理要确保安全,锁定代码要一条一条的执行,而异步处理中的代码都应该不会引起安全问题,例如对于同一属性的赋值就不可以放到异步处理之中,因为不知道哪条线程先执行,会造成属性值的不确定。在运行表现是就是,同步处理是一个线程中一条条执行代码,异步处理是好多线程没有时间顺序执行代码。
同步异步是相对线程来说的,而并行串行是相对队列来说的。如果我们把代码块塞入全局队列中,这就是串行,代码会根据全局队列中的顺序一条条执行,如果塞入自己创建的队列中,这就是并行,队列中的任务无法确定时间先后执行。
组合来看,同步+串行,是一条条塞进去,一条条取出来执行,代码执行完一条后在执行下一条,顺序确定。
异步+串行,塞进去的顺序不确定,但一条条取出来,代码执行完一条后在执行下一条,但顺序可能就不确定了。
同步+并行,一条条塞进去,执行完一条在塞进另一条,代码执行完一条后在执行下一条,顺序确定。
异步+并行,塞进去的顺序不确定,取出来执行的顺序不确定。
不知道这么理解对不对
|
|