面向对象程序设计Java第8章课件.ppt

面向对象程序设计Java第8章课件.ppt

ID:57188732

大小:1.02 MB

页数:34页

时间:2020-08-02

面向对象程序设计Java第8章课件.ppt_第1页
面向对象程序设计Java第8章课件.ppt_第2页
面向对象程序设计Java第8章课件.ppt_第3页
面向对象程序设计Java第8章课件.ppt_第4页
面向对象程序设计Java第8章课件.ppt_第5页
资源描述:

《面向对象程序设计Java第8章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象程序设计Java2013年9月第8章多线程设计1.多线程机制2.多线程实现方法3.多线程状态及调度4.线程同步5.线程通信多线程机制线程就是应用程序中的一个可执行线索,多线程就是同一个应用程序中有多个可执行线索,它们可以并发执行。多线程就是同一程序中多个任务的并发实现。同类的多个线程是共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制。系统在产生一个线程,或者在各个线程之间切换时,负担

2、要比进程小的多。一个进程中可包含多个线程,线程被称为轻负荷进程(light-weightprocess)。进程与线程之间的差别主要体现在两个方面:作为基本的执行单元,线程的划分比进程小,因此,支持多线程的系统要比只支持多进程的系统并发程度高。进程把内存空间作为自己的资源之一,每个进程均有自己的内存单元。线程却共享内存单元,通过共享的内存空间来交换信息,从而有利于提高执行效率。线程由三部分组成:虚拟的CPU,封装在java.lang.Thread类中。CPU所执行的代码,传递给Thread类。CPU所处理的数据,传递给Th

3、read类。建立Thread对象时,必须提供执行代码和代码所处理的数据。Java对象模型要求程序代码只能写成类的成员方法。数据只能作为方法中的变量或类的成员存在。规则要求为线程提供的代码和数据以类的实例形式出现。一个建立线程的例子:publicclassSimpleRunnableimplementsRunnable{privateStringmessage;publicstaticvoidmain(Stringargs[]){SimpleRunnabler1=newSimpleRunnable("Hello");Thr

4、eadt1=newThread(r1);t1.start();}publicSimpleRunnable(Stringmessage){this.message=message;}publicvoidrun(){for(;;){System.out.println(message);}}线程开始执行时,它在publicvoidrun()方法中执行。该方法是定义的线程执行起点,像应用程序从main()开始一样。首先main()方法构造SimpleRunnable类的实例。实例有自己的一个String数据,初始化为"Hell

5、o"。由实例t1传入Thread类构造器,这是线程运行时处理的数据。执行的代码是实例方法run()。多线程实现方法创建新线程有两种方法:生成Thread子类。生成一个类,声明实现Runnable接口。实现Thread子类方法的多线程用这种方法生成新线程,可以按以下步骤进行:生成Thread类的子类。classMyThreadextendsThread2.在子类中覆盖run()方法。publicvoidrun()3.生成子类的对象,并且调用start()方法启动新线程。MyThreadthread=newMyThread(

6、);thread.start();start()方法将调用run()方法执行线程。实现Thread子类方法的多线程示例classFirstThreadextendsThread{publicvoidrun(){try{System.out.println("Firstthreadstartsrunning.");for(inti=0;i<6;i++){System.out.println("First"+i);sleep(1000);}System.out.println("Firstthreadfinishesrunn

7、ing.");}catch(InterruptedExceptione){}}}classSecondThreadextendsThread{publicvoidrun(){try{System.out.println("tSecondthreadstartsrunning.");for(inti=0;i<6;i++){System.out.println("tSecond"+i);sleep(1000);}System.out.println("tSecondthreadfinishesrunning");}ca

8、tch(InterruptedExceptione){}}}publicclassThreadTest1{publicThreadTest1(){FirstThreadfirst=newFirstThread();SecondThreadsecond=newSecondThread();first.start();s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。