多线程-java程序设计.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多线程-java程序设计

第8章 多线程 8.1 Java多线程概述 Java程序是运行在Java虚拟机(JVM)中的,在JVM的内部,程序的多任务是通过线程来实现的。用java命令运行一个java应用程序时,就会启动一个JVM进程。在这个JVM环境中,用户程序是以线程的形式来运行的。之前见到的Java应用程序都是单线程的,如用java命令运行一个最简单的HelloWorld的Java应用程序时,就启动了一个JVM进程,JVM找到程序程序的入口点main(),然后运行main()方法,这样就产生了一个线程,这个线程称之为主线程。 8.2 线程的创建 8.2.1 直接继承Thread类创建线程 Java提供了类 java.lang.Thread 来方便多线程编程,Thread 类称为线程类,这个类提供了大量的方法来方便我们控制线程。要创建一个线程,程序员可以创建一个从 Thread 类继承的新的线程类,新类必须覆盖从 Thread 类继承的 run( )方法(称为线程体),加入线程所要执行的代码即可。新的线程类的对象就是线程对象,要启动线程,不能直接调用线程对象的run( )方法,而是必须调用从父类Thread 类继承的 start( )方法,该方法会自动调用run( )方法来执行线程体。 8.2.1 直接继承Thread类创建线程 【实例8-1】直接继承Thread类创建线程 class MyThread extends Thread {// 定义线程类 int pauseTime; String name; public MyThread(int pauseTime, String name) { this.pauseTime = pauseTime; this.name = name; } @Override // 表示方法重写的Java注解 public void run() {// 线程体 int num = 1; while (true) { try { System.out.println(name + : + num++); Thread.sleep(pauseTime);// 线程休眠 pauseTime 毫秒 } catch (Exception e) { System.out.println(e); } } } } 8.2.1 直接继承Thread类创建线程 public class ThreadDemo {// 测试类 public static void main(String args[]) { MyThread tp1 = new MyThread(1000, tp1);// 创建线程tp1 tp1.start();// 启动线程tp1 MyThread tp2 = new MyThread(3000, tp2);// 创建线程tp2 tp2.start();// 启动线程tp2 } } 8.2.2 通过实现 Runnable 接口创建线程 Runnable 是一个简单的接口,其中只有一个抽象方法run( ),此方法必须由实现了此接口的类给出具体实现。通过Runnable 接口创建线程的过程如下: (1)定义一个实现了 Runnable 接口的类,实现run( )方法,在其中加入线程所要执行的代码。 (2)创建该类的一个对象,然后再以该对象为参数创建Thread 类的一个对象,从而创建了一个线程对象。 (3)最后调用该Thread 对象的start()方法来启动该线程。 8.2.2 通过实现 Runnable 接口创建线程 【实例8-2】通过实现 Runnable 接口创建线程 class MyThread implements Runnable {// 定义一个实现了Runnable接口的类 int pauseTime; String name; public MyThread(int pauseTime, String name) { this.pauseTime = pauseTime; this.name = name; } @Override // 表示方法重写的Java注解 public void run() {// 线程体 int num = 1; while (true) { try { System.out.println(name + : + num++); Thread.sleep(pauseTime);// 线程休眠 pauseTime 毫秒 } catch (Exception e) { Sys

文档评论(0)

ailuojue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档