[理学]jaa 2实用教程课件线程

[理学]jaa 2实用教程课件线程

ID:27718019

大小:1.47 MB

页数:61页

时间:2018-12-04

[理学]jaa 2实用教程课件线程_第1页
[理学]jaa 2实用教程课件线程_第2页
[理学]jaa 2实用教程课件线程_第3页
[理学]jaa 2实用教程课件线程_第4页
[理学]jaa 2实用教程课件线程_第5页
资源描述:

《[理学]jaa 2实用教程课件线程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章线程目录Java中的线程线程的生命周期Thread的子类创建线程使用Runable接口线程的常用方法线程的优先级线程同步在同步方法中使用wait()、notify和notifyAll()方法挂起、恢复和终止线程本章小结2线程的概念进程和线程的区别进程一个独立程序的每一次运行称为一个进程,例如用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程设置一个进程要占用相当一部分处理器时间和内存资源大多数操作系统不允许进程访问其他进程的内存空间,进程间的通信很不方便,编程模型比较复杂3线程一个程序中多段代码同时并发执行,称为多线程通过多线程,一个进程表面上

2、看同时可以执行一个以上的任务——并发创建线程比创建进程开销要小得多,线程之间的协作和数据交换也比较容易(进程独站资源)线程间共享资源(内存、代码、数据)有利于并行处理线程的概念(续)4线程的状态与生命周期新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。此时它已经有了相应的内存空间和其他资源。就绪状态:线程等待CPU运行状态:start()方法开始执行中断(阻塞)状态:sleep(),wait(),I/O完成or发布I/O请求sleep():使当前线程进入等待状态,参数设定其等待时间wait():使当前线程进入等待状态,调用nofify(),ornotifyA

3、ll(),使其重新进入线程等待队列死亡:run()方法完成stop()方法被调用5线程的生命周期6诞生状态线程刚刚被创建就绪状态线程的start方法已被执行线程已准备好运行运行状态处理机分配给了线程,线程正在运行阻塞状态(Blocked)在线程发出输入/输出请求且必须等待其返回遇到用synchronized标记的方法而未获得其监视器暂时不能进入执行时休眠状态(Sleeping)执行sleep方法而进入休眠死亡状态线程已完成或退出线程的几种基本状态(续)7主线程:Java应用程序总是从主类的main()方法开始执行。当JVM加载代码,发现main方法之后,启动的线程称作“主线程”,该线程负责执行

4、main方法。在main方法的执行中再创建的线程,就称为程序中的其它线程。如果main方法中没有创建其他的线程,那么当main方法执行完最后一个语句,JVM就会结束Java应用程序。如果main方法中又创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,main方法即使执行完最后的语句,JVM也不会结束程序,JVM一直要等到程序中的所有线程都结束之后,才结束我们的Java应用程序。8Thread类Thread类在Java程序中创建多线程的方法之一是继承Thread类Thread类封装了Java程序中一个线程对象需要拥有的属性和方法从Thread类派生一个子类,并创建这个子类的对象,就

5、可以产生一个新的线程。这个子类应该重写Thread类的run方法,在run方法中写入需要在新线程中执行的语句段。这个子类的对象需要调用start方法来启动,新线程将自动进入run方法。原线程将同时继续往下执行它位于java.lang包中,因而程序开头不用import任何包就可直接使用例子:Example9_1.java9publicclassExample9_1{publicstaticvoidmain(Stringargs[]){Lefthandleft;Righthandright;left=newLefthand();//创建线程right=newRighthand();left.sta

6、rt();right.start();for(inti=1;i<=3;i++){System.out.println("我是主线程");}}}classRighthandextendsThread{publicvoidrun(){for(inti=1;i<=3;i++){System.out.println("我是右手线程");}}}classLefthandextendsThread{publicvoidrun(){for(inti=1;i<=3;i++){System.out.println("我是左手线程");}}}10Java中创建线程的两种方法Thread类的子类创建线程对象,子类重

7、写Thread类中的run()方法使用Thread类直接创建线程对象,但需要使用Runable接口11Thread类(续)在新线程中完成计算某个整数的阶乘publicclassEx8_1{publicstaticvoidmain(String[]args){System.out.println("mainthreadstarts");FactorialThreadthread=newFactori

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

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

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