第6讲JAVA的多线程.pptVIP

  • 2
  • 0
  • 约1.01万字
  • 约 69页
  • 2017-07-16 发布于四川
  • 举报
能力目标 学会Java中线程的使用 掌握线程的调度和控制方法 能够实现多线程的互斥 主要内容 线程简介 线程的创建 多线程的互斥 重点难点 线程的创建 多线程的互斥 本讲案例 用程序来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,要求这四个售票点同时售票。这就需要一个程序能够同时执行4个任务。 所需要的知识点 什么是多线程 如何实现多线程 如何调度和控制多线程 多线程概述 大多数程序设计时,习惯上考虑该程序如何从头至尾顺序执行各项任务的设计方法,即一个程序只有一条执行路线。但现实世界中的很多过程都是同时发生的,对应这种情况,可编写有多条执行路径的程序,使得程序能够同时执行多个任务。 线程的基本概念 线程是程序中的一条执行路径。多线程是指程序中包含多条执行路径。 在一个程序中可以同时运行多个不同的线程来执行不同的任务。 多线程的例子 浏览器程序 聊天程序 线程与进程的区别 进程和线程相比,主要有以下区别: 两者的粒度不同,是两个不同层次上的概念。进程是由操作系统来管理的,而线程则是在一个程序(进程)内。 不同进程的代码、内部数据和状态都是完全独立的,而一个程序内的多线程是共享同一块内存空间和同一组系统资源,有可能互相影响。 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。 分时操作系统 可以同一时间执行多个程序的操作系统 CPU只是将时间切割为时间片,然后将时间片分配给这些程序,获得时间片的程序开始执行,不等执行完毕,下个程序又获得时间片开始执行,给人的感觉就像是多个程序在同时执行一样。 Java的多线程就是在操作系统每次分时给Java程序一个时间片的CPU时间内,在若干独立的可控制的线程之间切换。 多线程编程的优点 减轻编写交互频繁、涉及面多的程序的困难 程序的吞吐量会得到改善 由多个处理器的系统,可以并发运行不同的线程。(否则,任何时刻只有一个线程在运行) 多线程的实现方法 线程的创建包括定义线程体和创建线程对象两个方面的内容。线程的行为由线程体决定,线程体是由run()方法定义的。 Thread类和Runnable接口都包含了run()方法的定义,因此可以通过继承Thread类或实现Runnable接口这两种途径来构造自己的run()方法。 多线程的实现方法(一) 继承Thread类 1、定义Thread类的子类 public class ThreadSubclassName extends Thread{ …//数据成员 public ThreadSubclassName(){ ..... // 编写子类的构造方法 } public void run(){//重写run方法,必须有 ..... // 定义线程体 } } 继承Thread类 2、用定义的线程子类ThreadSubclassName创建线程对象的一般格式为: ThreadSubclassName ThreadObject = new ThreadSubclassName(); 3、启动该线程对象表示的线程: ThreadObject.start(); //启动线程 继承Thread类实现多线程举例 public static void sleep(long?millis)       throws InterruptedException Sleep是Thread类的一个静态方法,可以用   类名.sleep(500)格式调用 调用sleep的方法必须捕获      InterruptedException异常 运行结果: You are sdudents! I am a teacher! I am a teacher! You are sdudents! I am a teacher! I am a teacher! You are sdudents! I am a teacher! You are sdudents! I am a teacher! You are sdudents! You are sdudents! class Hand extends Thread { //定义线程类 String str; public Hand(String a){//构造方法 str=a; } public void run( )//重写run()方法 { for(int i=0;i=5;i++) {System.out.println(str);

文档评论(0)

1亿VIP精品文档

相关文档