北京大学计算机系:《Java》课程讲义(PPT课件)第七章 Java线程(多线程)

第7章多线程 北京大学计算机系 代亚非
第7章 多线程 北京大学计算机系 代亚非

第7章多线程 71多线程基本概念 72创建线程的方式 73线程的挂起与唤醒 74多线程问题 75小结
2 第 7 章 多线程 7.1 多线程基本概念 7.2 创建线程的方式 7.3 线程的挂起与唤醒 7.4 多线程问题 7.5 小结

多线程基本概念 3 文件各种系统资源输入输出装置文件各种系统资源输入输出装置 三数据区段 匚数据区段 程序区段 程序区段 只有一个地方在执行 同时有数个地方在执行 传统的进程 多线程的任务
3 7.1 多线程基本概念 文件 各种系统资源 输入输出装置 数据区段 程序区段 只有一个地方在执行 文件 各种系统资源 输入输出装置 数据区段 程序区段 同时有数个地方在执行 传统的进程 多线程的任务

7.1多线程基本概念 多线程的优势: 减轻编写交互频繁、涉及面多的程序的困难 程序的吞吐量会得到改善 由多个处理器的系统可以并发运行不同的线 程(否则,任何时刻只有一个线程在运行)
4 7.1 多线程基本概念 多线程的优势: 减轻编写交互频繁、涉及面多的程序的困难. 程序的吞吐量会得到改善. 由多个处理器的系统,可以并发运行不同的线 程.(否则,任何时刻只有一个线程在运行)

71多线程基本概念 线程与进程的区别: 多个进程的内部数据和状态都是完全独立的 而多线程是共享一块内存空间和一组系统资 源有可能互相影响. 线程本身的数据通常只有寄存器数据,以及 个程序执行时使用的堆栈,所以线程的切 换比进程切换的负担要小
5 7.1 多线程基本概念 线程与进程的区别: 多个进程的内部数据和状态都是完全独立的, 而多线程是共享一块内存空间和一组系统资 源,有可能互相影响. 线程本身的数据通常只有寄存器数据,以及 一个程序执行时使用的堆栈,所以线程的切 换比进程切换的负担要小

71多线程基本概念 对线程的综合支持是Java技术的一个重要特 色它提供了 thread类、监视器和条件变量的 技术 虽然 Macintosh, Windows nt, Windows9等操 作系统支持多线程,但若要用C或C+编写多 线程程序是十分困难的,因为它们对数据同 步的支持不充分
6 7.1 多线程基本概念 对线程的综合支持是Java技术的一个重要特 色.它提供了thread类、监视器和条件变量的 技术. 虽然Macintosh,Windows NT,Windows 9等操 作系统支持多线程,但若要用C或C++编写多 线程程序是十分困难的,因为它们对数据同 步的支持不充分

创建线程的方式 public class mythread extends applet implements runnable (小应用或已经是某个类的子类时 2.继承类 Thread public class mythread extends Thread 3.上述两种方法中都可用类 Thread产生线程的 对象 TThread newthread; 4.创建并启动线程 newthread=new Thread(this); newthread start;
7 7.2 创建线程的方式 1. public class mythread extends Applet implements Runnable (小应用或已经是某个类的子类时) 2. 继承类Thread public class mythread extends Thread 3. 上述两种方法中都可用类Thread产生线程的 对象 Thread newthread; 4. 创建并启动线程 newthread=new Thread(this); newthread.start();

72创建线程的方式 5run方法是运行线程的主体,启动线程时,由 java直接调用 public void runo 6停止线程由小应用程序的sop调用线程的 stop newthread stope 7 sleep方法的作用暂停线程的执行,让其它线 程得到机会,see要丢出异常,必须抓住 Trysleep(100)catch(Interrupted Exception e0 例:小应用程序中不用 Runnable接口仍然可以 使用线程(不调用主类的方法和调用主类的方 法)
8 7.2 创建线程的方式 5. run方法是运行线程的主体,启动线程时,由 java直接调用 public void run() 6.停止线程,由小应用程序的stop调用线程的 stop newthread.stop() 7 sleep方法的作用,暂停线程的执行,让其它线 程得到机会,sleep要丢出异常,必须抓住. Try{sleep(100)}catch(InterruptedException e){} 例:小应用程序中不用Runnable接口仍然可以 使用线程(不调用主类的方法和调用主类的方 法)

72创建线程的方式 import java applet. *i public class thread extends applet i mythread tl=new mythreado public inito i tIstart; class mythread extends Thread i public void runo f for (int i=0; K<4; i++) System. out printIn(2+i i trytsleep(400) 3 catch(Interupted Exception er
9 import java.applet.*; public class thread extends Applet { mythread t1=new mythread(); public init() { t1.start();} class mythread extends Thread { public void run() { for (int i=0;i<4;i++) System.out.println( “”+i); { try{sleep(400); } catch(InteruptedException e){ } } } 7.2 创建线程的方式

public class mainclass extends applet i C tI=new C(this) public void initoi tl start;3 public void paint(graphics g) i g drawString Hello,java", 10, 50);3) class c extends Thread mainclass a C(mainclass b) {a=b;} public void runo i while(truer a repaint; tryisleep (400);} catch(InterruptedException e)0))
10 7.2 创建线程的方式 public class mainclass extends Applet { C t1=new C(this); public void init() { t1.start();} public void paint(Graphics g) { g.drawString("Hello,java",10,50);}} class C extends Thread { mainclass a; C(mainclass b) { a=b; } public void run() { while(true){ a.repaint(); try{sleep(400);} catch(InterruptedException e){} }}
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京大学计算机系:《Java》课程讲义(PPT课件)第一章 Java的类.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第6章 类与对象.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第5章 Prolog基础.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第4章 Visual Prolog概述.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第3章 A编程基础.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第2章 知识表示方法.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第1章 人工智能概述.ppt
- 《面向对象语言》课程教学资源(讲稿)表14-3内部谓词简述.doc
- 《面向对象语言》课程教学资源(讲稿)class predicates.doc
- 《面向对象语言》课程教学资源(PPT课件讲稿)主目录.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)附录 术语表.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第15章 与其他编程语言接口.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第14章 内部论域、谓词和常量.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第13章 编译单元.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第12章 Visual Prolog程序元素.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第11章 Visual Prolog数据元素.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第10章 Visual Prolog语言元素.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第9章 编码风格.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第8章 编写CGI程序.ppt
- 《面向对象语言》课程教学资源(PPT课件讲稿)第7章 Visual Prolog编程.ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第三章 Java事件(事件处理).ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第九章 分布式对象技术体系(1/2).ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第九章 分布式对象技术体系(2/2).ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第二章 Java小程序小应用.ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第五章 Java显示AWT(构成用户界面的窗口环境).ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第八章 Java网络功能.ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第六章 Java流(数据流的运用).ppt
- 北京大学计算机系:《Java》课程讲义(PPT课件)第四章 Java异常处理.ppt
- 《CAXA2000电子图板教程》ppt电子课件.ppt
- 《电子商务的技术基础》第四章(4-1) 国际互联网.ppt
- 北京邮电大学自动化学院:《数据结构》第一章 绪论(杨福兴).ppt
- 北京邮电大学自动化学院:《数据结构》第一章(1-1)什么是数据结构.ppt
- 北京邮电大学自动化学院:《数据结构》第七章 图.ppt
- 北京邮电大学自动化学院:《数据结构》第三章 栈和队列.ppt
- 北京邮电大学自动化学院:《数据结构》第九章 排序.ppt
- 北京邮电大学自动化学院:《数据结构》第二章 线性表.ppt
- 北京邮电大学自动化学院:《数据结构》第五章 数组和广义表.ppt
- 北京邮电大学自动化学院:《数据结构》第八章 查找.ppt
- 北京邮电大学自动化学院:《数据结构》第六章 树与二叉树.ppt
- 北京邮电大学自动化学院:《数据结构》第四章 串.ppt