1.什么是并发
并发是指两个或者两个以上的活动独立发生。
2.并发途径
a.多进程并发:将应用程序分为多个独立的进程,他们在同一时刻进行,比如:同时浏览网页和写博客做记录;
b:多线程并发:并发另外一个途径是在单进程中运行多个线程,每个线程相互独立,且线程可以在不同的指令序列中运行,进程中的所有线程共享地址空间,并且访问到大多数数据(全局变量,指针,对象的引用)。由于地址空间的共享,以及缺少线程间数据的保护,使得操作系统之间的记录工作量减小,所以使用多线程的开销远小于多进程。但是由于内存的共享,数据要被多个线程访问,线程间数据共享可能会遇到问题。
3.两种并发方式提高性能
两种方式利用并发提高性能:第一,将一个单个任务分成几部分,且各自并行运行,从而降低总运行时间。这就是任务并行(task parallelism)。虽然这听起来很直观,但它是一个相当复杂的过程,因为在各个部分之间可能存在着依赖。区别可能是在过程方面——一个线程执行算法的一部分,而另一个线程执行算法的另一个部分——或是在数据方面——每个线程在不同的数据部分上执行相同的操作(第二种方式)。后一种方法被称为数据并行(data parallelism)。