Java程序设计实例教程-第8章.ppt
《Java程序设计实例教程-第8章.ppt》由会员分享,可在线阅读,更多相关《Java程序设计实例教程-第8章.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java实例教程 沧州师范学院 授课教师:刘春玉授课教师:刘春玉 版权所有:计算机系版权所有:计算机系第8章 多线程版权所有:计算机系本次课程内容u认认认认识识识识多多多多线线线线程程程程u线线线线程程程程概概概概念念念念u创创创创建建建建多多多多线线线线程程程程u线线线线程程程程的的的的“一一一一生生生生”u线线线线程程程程的的的的优优优优先先先先级级级级 u线线线线程程程程的的的的同同同同步步步步版权所有:计算机系1.认识多线程认识多线程当我们使用电脑时,可以一边听音乐、一边QQ聊天、一边打游戏。一个CPU怎么可以同时作这么多事情呢?难道电脑真的难道电脑真的可以同时运行可以同时运行多个程序
2、?多个程序?版权所有:计算机系在同一时间点执行各项进程在同一时间点执行各项进程 编译程序编译程序 发送发送/接收邮件接收邮件 打印文件打印文件 其他其他操作系统允许计算机操作系统允许计算机同时执行多项操作同时执行多项操作程序程序(进程)(进程)版权所有:计算机系AThreadA ProgramTwoThreadB Program版权所有:计算机系public class mainClass public static void main(String agrs)m1();public static void m1()m2();m3();public static void m2()public
3、 static void m3()程序执行路径,先执行谁,后执行谁?程序执行路径,先执行谁,后执行谁?版权所有:计算机系m1()mainm2()m3()m1m2m3存在几条执行路径?存在几条执行路径?版权所有:计算机系AThreadBThread谁曾见过这样的程序?谁曾见过这样的程序?版权所有:计算机系2.线程概念程序、进程与多任务程序、进程与多任务程序程序(program)是对数据描述与操作的代码的集合,是应用程序执行的脚本。进程进程(process)是程序的一次执行过程,是系统运行程序的基本单位。程序是静态的,进程是动态的。系统运行一个程序即是一个进程从创建、运行到消亡的过程。多任务多任务
4、(multi task)在一个系统中可以同时运行多个程序,即有多个独立运行的任务,每个任务对应一个进程。版权所有:计算机系 线程线程线程线程(thread)就是比进程更小的运行单位,是程序中单个顺序的流控制。一个进程中可以包含多个线程。简单来讲,线程是一个独立的执行流,是进程内部的一个独立执行单元,相当于一个子程序。版权所有:计算机系3.创建多线程JDK提供的相关类和接口提供的相关类和接口(1)Runnable 接口 就提供一个方法run()(2)Thread类 实现了Runnable接口创建线程的两种两种方法:创建Thread类的子类,重写该类的run方法创建Runnable接口的实现类,实
5、现接口中的run方法版权所有:计算机系方法一:创建Thread的子类创建创建Thread的子类的子类创建线程对象创建线程对象启动线程启动线程start()方法可以启动线程,开始执行run()中代码。即:run()内代码,不是调用执行,而是启动后,由虚拟机自动执行的。构造方法含义Thread()创建一个新的线程对象 Thread(Runnable target)基于Runnable接口实现类的实例创建一个线程对象 Thread(Runnable t,String name)基于给定的Runnable接口实现类的实例和指定名字创建一个线程对象Thread(String name)基于给定的名称创建
6、一个线程对象 版权所有:计算机系class MyThread extends Thread public void run()for(int i=1;i=30;i+)System.out.println(“线程”+getName()+“正在打印+i);public static void main(String args)System.out.println(“main开始执行”);MyThread mt=new MyThread();/MyThread mt2=new MyThread();mt.start();/mt2.start();for(int i=1;i=30;i+)System.
7、out.println(“线程main正在打印+i);版权所有:计算机系线程练习一:管道流(PipedOuputStream,PipeInputStream)方法一:PipedInputStream in=new PipedInputStream();PipedOutputStream out=new PipedOutputStream(in);方法二:PipedInputStream in=new PipedInputStream();PipedOutputStream out=new PipedOutputStream();In.connect(out);out.connect(in)版权
8、所有:计算机系?问题:要定义的线程类已经显式继承了一个其他的类怎么办?版权所有:计算机系方法二:创建Runnable接口的实现类创建类实现接口创建类实现接口class classname implements Runnable void run()创建该类对象(不是线程对象,还要借助创建该类对象(不是线程对象,还要借助Thread类)类)Thread(该类对象)启动线程启动线程start()版权所有:计算机系class MyRunnable implements Runnable public void run()for(int i=1;i=30;i+)System.out.println(“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 实例教程
限制150内