What is the thread Java语言的一个重要特性是支持多线程的程 序设计,多线程是实现并发的一种有效手段 线程是一个能独立执行自身指令的控制流 个程序中可以同时运行多个相对独立的线 程,这样的程序称为多线程程序 操作系统将CPU的执行划分为非常小的时间 片,根据一定的规则在不同的线程之间切换 使每个线程都得到执行的机会
What is the thread? • Java语言的一个重要特性是支持多线程的程 序设计,多线程是实现并发的一种有效手段 • 线程是一个能独立执行自身指令的控制流 • 一个程序中可以同时运行多个相对独立的线 程,这样的程序称为多线程程序 • 操作系统将CPU的执行划分为非常小的时间 片,根据一定的规则在不同的线程之间切换, 使每个线程都得到执行的机会
Progresses and Threads 进程与线程是两个不同的概念 ●进程是一个程序的执行序列,由操作系统调 度,是资源分配的基本单位;线程是一个进 程中的一个子序列,一般由程序负责管理 是执行的基本单位 线程共用相同的地址空间,线程之间的通信 是非常方便的,它们共同构成一个进程;进 程之间却有不同的地址空间
Progresses and Threads • 进程与线程是两个不同的概念 • 进程是一个程序的执行序列,由操作系统调 度,是资源分配的基本单位;线程是一个进 程中的一个子序列,一般由程序负责管理, 是执行的基本单位 • 线程共用相同的地址空间,线程之间的通信 是非常方便的,它们共同构成一个进程;进 程之间却有不同的地址空间
Creating Threads °类java.lang. Thread的实例表示线程对象 接口 java. lang Runnable的实现类实例表示 个可作为线程运行的对象 创建一个线程可以采用两种方式: (1)创建 Threat类的子类 (2)实现接口 java. lang Runnable
Creating Threads • 类 java.lang.Thread 的实例表示线程对象 • 接口 java.lang.Runnable 的实现类实例表示 一个可作为线程运行的对象 • 创建一个线程可以采用两种方式: (1) 创建Thread类的子类 (2) 实现接口 java.lang.Runnable
Class java, lang Thread d米右以下形式的构诰函数 class MyThread extends Thread public void run(t System. out. println(“ executing as a thread”) Ircauuaule taget, bulg ane Thread th=new My Thread; punc volubly Thread类的子类需覆盖rumn(方法
Class java.lang.Thread • Thread类有以下形式的构造函数: Thread() Thread(String name) Thread(Runnable target) Thread(Runnable target, String name) • Thread类中线程的主要功能方法是: public void run() {} • Thread类的子类需覆盖run()方法 class MyThread extends Thread{ public void run(){ System.out.println(“executing as a thread”); } } Thread th=new MyThread();
Interface java, lang Runnable class MyRunner implements Runnable( public void runt System. out. println(“ executing as a thread”); MyRunner runner=new MyRunnero; 实现 Thread th=new Thread(runner); Runnable接口的实现类对象必须转换为 hread 类的对象才能以线程的方式被运行
Interface java.lang.Runnable • Runnable接口中声明了唯一的方法 public interface Runnable{ public void run(); } • Runnable接口的实现类负责run()方法的实现, 提供作为线程运行时的功能 • Runnable接口的实现类对象必须转换为Thread 类的对象才能以线程的方式被运行 class MyRunner implements Runnable{ public void run(){ System.out.println(“executing as a thread”); } } MyRunner runner=new MyRunner(); Thread th=new Thread(runner);