多线程相关基本概念
多线程:在同一个进程中同时运行的多个任务。多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码,可以实现线程间的切换执行。
多进程:操作系统中同时运行的多个程序。
并发:当有多个线程在操作时,如果系统只有一个CPU(单处理器),把CPU运行时间划分成若干个时间段,分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态。这种方式我们称之为并发(Concurrent)。并发=>间隔发生
并行:当系统有一个以上CPU(多处理器)时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。 并行=>同时进行
高并发:是互联网分布式系统架构设计中必须考虑的因素之一,通常是指通过设计保证系统能够同时并行处理很多请求。
其中并发又有伪并发和真并发,伪并发是指单核处理器的并发,真并发是指多核处理器的并发。
区别:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。
同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。
理解:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步关系的一组并发进程相互发送的信息称为消息或事件。异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。
异步:异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。
理解:异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。