最新Java与面向对象程序设计实验教程第7章 线程(共30张PPT课件).pptx
《最新Java与面向对象程序设计实验教程第7章 线程(共30张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新Java与面向对象程序设计实验教程第7章 线程(共30张PPT课件).pptx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象的程序设计第第 7 章章 线程线程 对外经济贸易大学信息对外经济贸易大学信息(xnx)学院学院第一页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎content7.1 多线程基础多线程基础(jch)7.2 线程的生命周期线程的生命周期7.3 生产者与消费者问题生产者与消费者问题实验:多线程实验:多线程第二页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎7.1 多线程基础多线程基础(jch)o 7.1.1 线程的概念线程的概念o 7.1.2 Thread类和类和Runnable接口接口o 7.1.3 在程序在程序(chngx)中实现多线程中实现多线程第三页,共三十页。面向对象
2、的程序设计对外经济贸易大学 雷擎7.1.1 线程的概念线程的概念(ginin)o 线程和进程都是指正在执行的程序代码,是线程和进程都是指正在执行的程序代码,是与计算机中的并发与计算机中的并发(bngf)执行相关的概念。执行相关的概念。o 通过操作系统的调度,多个进程和线程可以通过操作系统的调度,多个进程和线程可以同时、独立的执行。同时、独立的执行。第四页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎o 线程与进程的区别线程与进程的区别:n 多个进程的内部数据和状态都是完全独立的多个进程的内部数据和状态都是完全独立的,而而多线程是共享一块内存空间和一组系统资源多线程是共享一块内存空间和一组
3、系统资源,有有可能互相影响可能互相影响(yngxing).n 线程本身的数据通常只有寄存器数据,以及一线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。进程切换的负担要小。o 多线程是多线程是Java的内嵌特性,的内嵌特性,Java 虚拟机虚拟机允许应用程序并发地运行多个执行线程。允许应用程序并发地运行多个执行线程。线程线程与进程与进程(jnchng)的区别的区别第五页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎7.1.2 Thread类和类和Runnable接接o Java中实现中实现(shxi
4、n)多线程有两种途径:继承多线程有两种途径:继承Thread类或者实现类或者实现Runnable接口。接口。Thread类类实现实现Runnable接口。接口。第六页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎创建创建(chungjin)线程的方式线程的方式1. 继承类继承类Thread public class mythread extends Thread 2.实现实现Runnable接口接口 public class mythread extends SuperClass implements Runnable 上述两种方法上述两种方法(fngf)中都可用类中都可用类Thread
5、产生线程的对产生线程的对象象 Thread newthread;第七页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎定义定义(dngy)一个一个Thread类的子类类的子类o 步骤:步骤:n 1. 定义定义一个一个(y )Thread类的子类,类的子类,并并override run()方法,在这个方法里是你希方法,在这个方法里是你希望这个线程运行的代码望这个线程运行的代码n 2. 创建一个这个新类的对象创建一个这个新类的对象n 3. 调用调用Thread对象的对象的start()方法来启动线方法来启动线程程第八页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎实现实现(shxin)R
6、unnable接口接口o 步骤:步骤:n 1. 定义一个类,实现定义一个类,实现Runnalbe接口,并接口,并override run()方法,在这个方法里是你希方法,在这个方法里是你希望这个线程运行望这个线程运行(ynxng)的代码的代码n 2. 创建一个这个新类的对象创建一个这个新类的对象n 3. 创建一个创建一个Thread类的对象,用刚才的类的对象,用刚才的Runnable对象作为构造函数参数对象作为构造函数参数n 4. 调用调用Thread对象的对象的start()方法来启动线方法来启动线程程第九页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎7.1.3 在程序在程序(chn
7、gx)中实现多线程中实现多线程o 一个龟兔赛跑的例子,使用一个龟兔赛跑的例子,使用(shyng)线程模拟线程模拟了龟兔在了龟兔在1000米赛跑过程。米赛跑过程。第十页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎1.定义定义(dngy)一个一个Thread类的子类类的子类class Runner extends Thread String name;double distance;Random rand = new Random();public Runner(String name)this.name = name; 第十一页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎publ
8、ic void run() distance = 0.0;for (int i = 0; i 10; i+) distance += 100.0;int sleepTime = rand.nextInt(2000);System.out.println(name +跑了跑了+ distance + 米米t休息休息(xi xi) + sleepTime + 毫秒毫秒);try Thread.sleep(sleepTime); catch (InterruptedException inte) System.out.println(name+跑到了终点跑到了终点);第十二页,共三十页。面向对象的程
9、序设计对外经济贸易大学 雷擎使用使用(shyng)定义好的定义好的Runner线程线程import java.util.Random; public class DemoThreadSimple public static void main(String args) /创建创建(chungjin)并命名每个线程并命名每个线程Runner rabbit = new Runner(rabbit);Runner tortoise = new Runner(“tortoise”);rabbit.setPriority(Thread.NORM_PRIORITY);tortoise.setPriorit
10、y(Thread.NORM_PRIORITY+5);rabbit.start();/ 启动线程启动线程1tortoise.start();/ 启动线程启动线程1第十三页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎2.实现实现(shxin)Runnable接口接口class JumpBean implements Runnable private int sleepTime; public JumpBean()/构造方法构造方法sleepTime = (int) (Math.random() * 6000);/获得获得(hud)随机休息毫秒数随机休息毫秒数 第十四页,共三十页。面向对象的
11、程序设计对外经济贸易大学 雷擎数组元素数组元素(yun s)初始化的例子初始化的例子int aI; aI=new int10;String aS; aS=new String3;Circle aC; aC=new Circle5;int k =0 ;for(k=0;k10;k+) aIk = k*k;aS0 = aaa;aS1 = new String(bbb);aS3 = new String(ccc);for(k=0;k5;k+) aCk = new Circle();第十五页,共三十页。面向对象的程序设计对外经济贸易大学 雷擎public void run()try System.out
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新Java与面向对象程序设计实验教程第7章 线程共30张PPT课件 最新 Java 面向 对象 程序设计 实验 教程 线程 30 PPT 课件
限制150内