第十二章 Java多线程编程

时间:2022-11-22 11:52:20 作者:壹号 字数:4427字

JAVA学习

第12讲 线程技术 讲 Java Multi-Threads

计算机与通信学院

JAVA学习

本章主要内容

JAVA学习

一、线程及多线程的概念程序(program) 是对数据描述与操作的代码的集合, 是应用程序执行的脚本。是静态的。

JAVA学习

一、线程及多线程的概念进程(process) 是程序的一次完整的执行过程,是操作 系统运行程序的基本单位。系统从程序入 口开始按语句的顺序(其中包括顺序、分支 和循环)完成相应指令直至结尾,从出口退 出,同时整个程序结束。是动态的。 一个进程既包括其所要执行的指令,也 包括了执行指令所需的任何系统资源,如 CPU、内存空间、I/O端口等,不同进程所 占用的系统资源相对独立。

JAVA学习

一、线程及多线程的概念多任务 是指在一个系统中可以同时运行多个 程序,即有多个独立运行的任务(多个进 程),每一个任务对应一个进程。

例如: 例如: 边听音乐边编写Java程序 音乐边编 边听音乐边编写Java程序

JAVA学习

一、线程及多线程的概念线程 是比进程更小的运行单位,是程序 中单个顺序的流控制。每个线程也有它 自身的产生、存在和消亡的过程,是一 个动态的概念。 在执行的任何时刻,只有一个执行 点。

JAVA学习

一、线程及多线程的概念多线程(Multi-Threads) 多线程是相对于单线程而言的,指的 是在一个程序中可以定义多个线程并同 时运行它们,每个线程可以执行不同的 任务。与多进程不同的是,同类多线程 共享一块内存空间和一组系统资源,所 以,系统创建多线程花费单价较小。因 此,也称线程为轻负荷进程。例如:在线看电影,播放程序在播 放的同时也在下载。

JAVA学习

一、线程及多线程的概念线程与进程的区别线程并不是一个完整的程序,它自己本身 并不能独立运行,只能包含在程序中、只 能在进程内部执行。process process

JAVA学习

一、线程及多线程的概念线程与进程的区别多个进程的内部数据和状态都是完全独立 的。 线程本身的数据通常只有寄存器数据,以 及一个程序执行时使用的堆栈,所以线程 的切换比进程切换的负担要小。 属于同一进程的所有线程共享该进程的内 存空间和一组系统资源,所以线程之间切 换的速度比进程切换要快得多。

JAVA学习

二、Java中的线程技术 Java中的线程技术Java的线程是通过软件包ng 中定义的类Thread来实现的。当生成 一个Thread类的对象之后,就产生了 一个线程,通过该对象,可以启动线程、 终止线程、或者暂时挂起线程等。

JAVA学习

二、Java中的线程技术 Java中的线程技术Thread在Java包中的层次关系:

所有已实现的接口:Runnable Thread类的原型: public class Thread extends Object implements Runnable{ ...... }

JAVA学习

二、Java中的线程技术 Java中的

线程技术Runnable接口: ng.Runnable Runnable的原型: public interface Runnable { void run(); }

JAVA学习

二、Java中线程的创建 Java中线程的创建

JAVA学习

二、Java中线程的创建 Java中线程的创建

JAVA学习

二、Java中线程的创建 Java中线程的创建

JAVA学习

二、Java中线程的创建 Java中线程的创建

JAVA学习

二、Java中线程的创建 Java中线程的创建通过扩展Thread类创建线程-方法一1.创建Thread类的子类。 2.重写Thread类中的run()方法。 3.创建子类的对象。 4.调用线程对象的start()方法。

例子.ThreadTest.java

JAVA学习

二、Java中线程的创建 Java中线程的创建通过扩展Thread类创建线程-方法一1.创建Thread类的子类。 2.重写Thread类中的run()方法。 3.创建子类的对象。 4.调用线程对象的start()方法。

…… 此处隐藏0字 ……

例子.ThreadTest.java

JAVA学习

二、Java中线程的创建 Java中线程的创建例子.ThreadTest.java

JAVA学习

二、Java中线程的创建 Java中线程的创建实现Runnable接口创建线程-方法二 1.创建实现接口Runnable的类。 2.实现接口Runnable中的run()方法。 3.创建实现了Runnable接口的类对象。 3.4.将3中创建的对象作为参数,创建Thread类 对象。 5.调用线程对象的start()方法。 例子.AppletThreadTest.java

JAVA学习

二、Java中线程的创建 Java中线程的创建