预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

举例讲解Java中的多线程欣赏举例讲解Java中的多线程范文欣赏举例讲解Java中的多线程Java创建线程(Runnable接口和Thread类)大多数情况,通过实例化一个Thread对象来创建一个线程。Java定义了两种方式:实现Runnable接口;可以继承Thread类。下面的依次介绍了每一种方式。实现Runnable接口创建线程的最简单的方法就是创建一个实现Runnable接口的类。Runnable抽象了一个执行代码单元。你可以通过实现Runnable接口的方法创建每一个对象的线程。为实现Runnable接口,一个类仅需实现一个run()的简单方法,该方法声明如下:publicvoidrun()在run()中可以定义代码来构建新的线程。理解下面内容是至关重要的:run()方法能够像主线程那样调用其他方法,引用其他类,声明变量。仅有的不同是run()在程序中确立另一个并发的线程执行入口。当run()返回时,该线程结束。在你已经创建了实现Runnable接口的类以后,你要在类内部实例化一个Thread类的对象。Thread类定义了好几种构造函数。我们会用到的如下:Thread(RunnablethreadOb,StringthreadName)该构造函数中,threadOb是一个实现Runnable接口类的实例。这定义了线程执行的起点。新线程的名称由threadName定义。建立新的.线程后,它并不运行直到调用了它的start()方法,该方法在Thread类中定义。本质上,start()执行的是一个对run()的调用。Start()方法声明如下:voidstart()下面的例子是创建一个新的线程并启动它运行://Createasecondthread.classNewThreadimplementsRunnable{Threadt;NewThread(){//Createanew,secondthreadt=newThread(this,"DemoThread");System.out.println("Childthread:"+t);t.start();//Startthethread}//Thisistheentrypointforthesecondthread.publicvoidrun(){try{for(inti=5;i>0;i--){System.out.println("ChildThread:"+i);Thread.sleep(500);}}catch(InterruptedExceptione){System.out.println("Childinterrupted.");}System.out.println("Exitingchildthread.");}}classThreadDemo{publicstaticvoidmain(Stringargs[]){newNewThread();//createanewthreadtry{for(inti=5;i>0;i--){System.out.println("MainThread:"+i);Thread.sleep(1000);}}catch(InterruptedExceptione){System.out.println("Mainthreadinterrupted.");}System.out.println("Mainthreadexiting.");}}在NewThread构造函数中,新的Thread对象由下面的语句创建::t=newThread(this,"DemoThread");通过前面的语句this表明在this对象中你想要新的线程调用run()方法。然后,start()被调用,以run()方法为开始启动了线程的执行。这使子线程for循环开始执行。调用start()之后,NewThread的构造函数返回到main()。当主线程被恢复,它到达for循环。两个线程继续运行,共享CPU,直到它们的循环结束。该程序的输出如下:Childthread:Thread[DemoThread,5,main]MainThread:5ChildThread:5ChildThread:4MainThread:4ChildThread:3ChildThread:2MainThread:3ChildThread:1Exitingchildthread.MainThread:2MainThread:1Mainthreadexiting.如前面提到的,在多线程程序中,通常