Date:26March2007
ITEducation&;Training
Java语言编程
王宁东软培训(沈阳)
Date:26March2007
ITEducation&;Training
Java的线程机制
定义、创建、执行新线程结束线程的执行线程的优先级线程的状态及状态间的转换
程序对线程执行的控制
Date:26March2007
ITEducation&;Training
Java的线程机制
共享访问与线程同步通过wait和notify在线程间交互Thread类的其他重要方法Java多线程机制的特点多线程与垃圾收集
Date:26March2007
ITEducation&;Training
简化的
计算机 最简单的看法包含三个部分:CPUROM(保存程序代码)RAM(保存要操作的数据)只执行一个
作业两个以上的作业由两个以上的计算机完成
Date:26March2007
ITEducation&;Training
线程
线程可以被看作一个简化的计算机线程的三个组成部分:虚拟CPU代码数据线:所有的操作都具有先、后顺序每个线程内,按照时间顺序地执行代码不同线程之间不能确定代码的执行顺序
Date:26March2007
ITEducation&;Training
线程与进程
进程:一个应用程序进程通常独占内存一个或多个线程组成一个进程多个线程可能共享内存:代码数据
Date:26March2007
ITEducation&;Training
做过的程序
文本程序:通常都是一个线程从main方法开始代码的执行按照严格的时间顺序执行到main方法结束GUI程序:图形界面在另外的线程中运行
Date:26March2007
ITEducation&;Training
Java中的线程
使用java.lang.Thread类创建和控制线程虚拟CPU被封装在java.lang.Thread类的一个实例中Thread类的实例决定了代码和数据Java中任何一个线程都必须是Thread类或其继承类的一个实例创建并启动线程:P13-6
Date:26March2007
ITEducation&;Training
创建线程
使用Thread类:publicThread(Runnabletarget)publicvoidstart()java.util.Runnable接口publicvoidrun()线程从Runnable对象的run方法开始执行
Date:26March2007
ITEducation&;Training
线程的启动和终止
开始一个新线程
Thread类的publicvoidstart()start方法调用后线程处于可执行状态,但并不一定立即执行线程的执行由JVM调度线程的终止:自动结束:run方法执行结束返回时强行停止:Thread类的publicvoiddestroy()
Date:26March2007
ITEducation&;Training
多线程共享数据和代码
举例:多线程源于同一个Runnable实例Threadt1=newThread(r);Threadt1=newThread(r);t1.start();t2.start();共享Runnable的run方法的代码共享Runnable实例的数据