Java面试题五:什么是串行,并行,并发,同步,异步?

①并发:

      并发编程又叫多线程编程,并发的实质是一个物理上的CPU在若干道程序之间多路复用,有限的资源多用户共享提高效率。任务数多余CPU的核数,通过操作系统的任务调度算法,实现多个任务一起执行的。一个CPU不可能真正同时运行一个一个以上的线程,只能把CPU的时间分为多个时间段,再将各个时间段分给多个线程执行,其他线程处于挂起状态,这种方式称为并发。

②并行:

      两个或者两个以上的事件或者活动在同一时刻发生。多道程序的环境下,允许程序同一时刻在不同的CPU同时执行。当系统有一个以上的CPU的时候,则线程的操作有可能非并发,线程在不同的CPU执行,互不抢占CPU的资源,可以同时执行。

③ 串行和并行:

      串行是指多个任务的时候,各个人物按顺序执行完成一个任务之后才能完成下一个任务。并行是多个任务可以同时执行,异步是多个任务并行的前提条件,也就是并行的线程一定是异步执行的)

④同步和异步:

      同步和异步是指能否开启新的线程。同步不能开启新的线程,异步是可以的。异步和同步是相对的,同步是顺序执行的,执行万一个再执行完下一个,需要等待,协调执行。异步是彼此独立,在等待某事件的过程中,继续做自己的事情,不需要等待上一个事件完成后再继续工作。线程是实现异步的一个方式。异步是让调用方法的主线程不需要同步的等待另一个线程的完成,从而可以主线程做其他的事情。异步是一个调用请求发送给被调用者,而被调用者不用等待结果的返回可以做其他的事情,实现异步可以采取多线程的技术或者交给其他的线程进行处理。例如同步:多任务情况下,一个任务A执行结束,才可以执行另一个任务B,只存在一个线程;异步:多个线程,一个任务A正在执行,同时可以执行另一任务B,任务B不用等待任务A结束才执行,促存在多条线程。

 

扫描二维码关注公众号,回复: 12794714 查看本文章

 

猜你喜欢

转载自blog.csdn.net/Sunshineoe/article/details/114891882