三者概念对比?
串行就是按照一定顺序,顺序执行多个任务,即一个任务处理完成再开始下一个任务。
并发则是同一时间,同一人交替完成多个任务,交叉时间段只能选择一个任务来完成。
并行是多个人同一时间,每个人一个任务的方式共同完成多个任务。
软件角度三者区别,以及软件实现并发的方式,及是否是完全优势?
并发可以认为是串行的反面,通常可以提高处理任务的效率,而并行则可以认为是并发的极致。因为在并发的过程中可能某些阶段需要串行操作,但是并行是完全的并发。
在现实生活中,一个人可以以并发的方式完成多个任务,在软件领域,完成多个任务需要借助多线程完成。但是并不是并发操作能够完全优势于串行操作,因为进程间切换需要成本,但是有时候
某些任务只能通过 串行完成。
从硬件角度如何实现并发,并行?
从硬件角度,一个处理器一次只能处理一个线程,但是一个处理器可以通过时间片分配技术来实现同一段时间内运行多个线程,多个处理器在同一时间各自运行一个线程来实现并行。
什么是软件的可并发,是否是所有的都可以修改为并发编程?
如果一个任务可以从串行处理改为并发处理来解决,就说个任务的处理是可并发化的,但是并不是所有的任务都是并发处理是最好的,有些任务必须串行化处理。例如读取文件
多线程的实质是将串行处理修改为并行处理,即实现并发化。