并发编程可以使我们的程序执行速度得到提高,多进程和多线程是常见的并发技术。
1、多进程
2、多线程
3、Java并发编程采用的方法
1、多进程
多进程是实现并发技术最直接的方法,它是操作系统级别的,操作系统周期性的快速的将CPU在给各个进程间切换,达到并发的目的。多进程的特点是每个进程都有自己的系统资源、地址空间等,进程之间的运行不会相互影响。进程和程序的区别就是进程是正在执行的指令集,而程序是静态的指令集。多进程的调度采用抢占式的方式。
2、多线程
多线程可以实现进程内部的并发,它是进程执行的单位,每个进程至少会有一个主线程。多线程的特点是每个线程拥有自己的堆栈和计数器等,但是他们没有自己独立的系统资源和地址空间,它与同一进程的所有线程共享进程的全部资源。所以,线程可以独立的运行,但是线程的运行可能会影响同一进程的其他线程。多线程的调度和多进程一样采用抢占式的方式,可以防止其他线程一直等待。
3、Java并发编程采用的方法
java中并发采用多线程的方式,《Java编程思想》中介绍了Java的一个重要设计目标就是对系统透明,而多进程是系统级别的。Java早期的重要目标系统Mac并不支持多任务,只有采用多线程技术才能在Mac系统上实现并发。为了满足“一次编写,到处运行”的目标,Java并发采用了多线程技术。
3.1 线程的创建成本小。由于线程共享进程的系统资源和地址空间,所以创建新的线程不需要再重新分配。
3.2 线程共享进程的内存空间、文件句柄等,进程拥有独立的内存空间,线程比进程执行更高效。
3.3 线程间共享代码段,进程变量等数据是的线程间通信更加方便。