并发编程模式中有两个基本执行单元:进程和线程进程和线程是现代操作系统基本概念个进程拥有独立完备执行环境进程拥有私有计算机资源比如独立内存空间、代码段、指令寄存器等等进程在操作系统中基本等同于应用最终用户看到独立有可能是多个互相协作进程为了方便进程的间通信大多数操作系统支持进程间通信(Inter Process Communication, IPC)资源比如管道和端口IPC往往不仅仅在同台计算机系统上使用也往往运用于区别计算机系统的间通信
线程通常也称轻量级进程线程拥有资源比进程要少线程只存在于进程中个进程可以包含多个线程比如个Java中可以有多个线程存在线程不拥有独立内存空间而是和同进程内其他线程共享进程内存空间由于线程共享进程资源(内存或者打开文件)同进程线程的间往往需要大量互斥和同步保证资源使用可确定性这在前面文章中已经说过资源共享是并发编程中同步和互斥根源
由于进程特性使得它们的间资源共享冲突比较少因此并发编程主要是针对线程多线程编程是Java基本特征因此这儿讲并发编程主要是针对Java线程编程
Java线程
简单来说每个Java线程都有个Thread例子和的对应创建线程对象思路方法通常有两种:
1.直接创建和管理也就是每当需要异步执行任务时就例子化个Thread对象然后自己管理其生命周期
2.抽象线程管理使其从代码中分离开来这些接口在java 5的后java.util.concurrency包中提供
我们先讨论第种方式java.util.concurrency包提供高层工具我们在后面文章再讨论
第种方式创建线程非常直接有两种思路方法可以创建个线程例子:
1.生成个Runnable对象并将它传递给Thread对象
1 public HelloWorld implements Runnable {2 publicvoid run {3 .out.prln("Hello World");4 }5 publicvoid (String args) {6 ( Thread( HelloWorld)).start;7 }8 }9
2.继承Thread并实现其run思路方法:
1 public HelloThread extends Thread {2 publicvoid run {3 .out.prln("Hello World!");4 }5 publicvoid (String args) {6 ( HelloThread).start;7 }8 }9
="xspace-totlerecord">3="xspace-totlepages">1/3="xspace-current">123>
最新评论