Java并发编程之概念:并发,并行,串行的区别
串行在时间是是不可能重叠的,一个任务没有执行完,下一个任务只能等待。
并行在时间上是重叠的,两个任务在同一时刻互不干扰的同时执行。
并发时间也不能重叠,但允许两个任务互相干扰,同一时间点,只有一个任务执行,交替执行。
Java并发编程之概念:同步和异步
同步(sync):
所谓同步,就是发出一次调用功能调用时,在没有得到结果之前,该调用就不返回并且不继续执行后续的操作。
异步(Async):
异步是和同步相对的,当发出一个调用时,调用者没返回结果之前,该调用就可以执行后续的操作。
当这个调用完成后,一般通过状态,通知和回调来通知调用者。对于异步调用,调用的返回并不受调用者控制。
Java并发编程之概念:线程和进程
进程是指一个内存中运行的应用程序
线程是指进程中一个执行任务(控制单元)
进程和线程的区别:
进程:有独立的内存空间,进程中的数据存放空间(堆空间和栈空间)时独立的,至少有一个线程
线程:堆空间是共享的,栈空间是独立的,线程消耗的资源比进程小,相互之间是可以影响的,又称为轻型进程和进程元。因为一个进程中的多个线程是并发运行的,那么从微观上考虑也是有先后顺序的,那么那个线程执行完全取决于CPU调度器(JVM来调度),程序员控制不了。我们可以把多线程鬓发看成多个线程抢占CPU资源,抢占的概率是随机的。