@大侠Tan 并发是程序同时执行多个任务,平时我们也用并发来形容程序的这个特性,并发和并行的唯一区别在于系统底层内核的实现上。多核处理器因为有多个内核,可以在同一"时刻"执行多个任务(每个任务分摊到不同内核来处理),这是并行。而对于单核处理器,系统只能把单核cpu的执行时间分割成多个时间片,来交替处理多个任务,以至于从应用上层来看是多个任务是同时执行的假象,这是并发。字面上,同时执行多个任务,我们都叫并发
多线程和异步是两个层面上的概念,多线程是并发的具体逻辑实现,异步主要强调程序逻辑调用的先后顺序。单个线程上可以有多个逻辑调用,如果是"同步",几个逻辑会排着队一个一个执行(前面的逻辑执行完了才执行后面的),如果是"异步",只要前面的逻辑调起了,后面逻辑就可以调起执行,没存在等待前面逻辑执行完的那段时间。不管是同步还是异步的逻辑调用,都是指针对单个线程而言的。
感谢关注,有问题继续交流~~~
并发 并行 同步 异步 多线程 阻塞 非阻塞前言 最近iOS开发群里兄弟们讨论网络层这块的东西比较多,问题主要集中在请求、线程、队列这几块。中途发现对并发、异步、多线程等这些概念有一定的误解,特写此篇文章以作阐释。 这...