Java 语言基础 Java 语言基础主讲: 邸衍玲?九、多线程内容概要线程处理定义、特点、常量和方法、生命周期创建、调度及同步第一节线程一、相关概念?进程?线程?多线程第九章多线程是进程内部单一的一个顺序控制流指一个进程在执行过程中可以产生多个线程,同时存在、同时运行,形成多条执行线索。是程序的一个动态执行过程第一节线程二、多线程的特点 1、多个线程在并行运行时,系统自动在线程之间进行切换; 2、多个线程共用同一块内存,线程之间可以通信; 3、Java 将线程视为一个对象。线程要么是 Thread 类的对象,要么是接口 Runnable 的对象。 4、每个线程执行顺序取决于优先级 5、多个线程共享一组资源,有可能在运行时产生冲突。必须采用 synchronized 关键字协调资源, 实现线程同步。第九章多线程第一节线程三、多线程编程常用的常量和方法三个静态变量 1. public static final int MAX_PRIORITY :最大优先级, 值是 10。 2. public static final int MIN_PRIORITY :最小优先级, 值是 1。 3. public static final int NORM_PRIORITY :缺省优先级, 值是 5。优先级设置 public final void setPriority ( int newPriority ) public final int getPriority ()第九章多线程第一节线程三、多线程编程常用的常量和方法 currentThread ( ):返回当前运行的线程对象,是一个静态的方法。 sleep(int n) :使当前运行的线程睡 n个毫秒,然后继续执行,也是静态方法。 yield( ) :使当前运行的线程放弃执行,切换到其它线程, 是一个静态方法。 isAlive ( ):判断线程是否处于执行的状态,返回值 true 表示处于运行状态, false 表示已停止。 start( ) :使调用该方法的线程开始执行。 run( ) :该方法由 start( ) 方法自动调用。 stop( ) :使线程停止执行,并退出可执行状态。第九章多线程第一节线程三、多线程编程常用的常量和方法 suspend(): 使线程暂停执行,不退出可执行态。 resume( ) :将暂停的线程继续执行。 setName(String s):赋予线程一个名字。 getName ( ):获得调用线程的名字。 getPriority ( ):获得调用线程的优先级。 setPriority(int p) :设置线程的优先级。 join( ) :等待线程死亡,若其他线程中断了该线程,将抛出异常。第九章多线程第一节线程四、线程的生命周期第九章多线程 resume suspend wait stop I/O 请求结束 start notify notifyAll I/O 请求睡眠时间结束 sleep 分配时间片时间片结束创建就绪运行结束挂起阻塞睡眠等待【例】创建单线程 class Thread1{ public static void main(String args [ ]) { String name; int p; Thread curr ; curr = ( ); ("当前线程: "+ curr ); name= ( ); p= ( ); ("线程名: "+name); ("优先级:"+p); } } 第九章多线程第九章多线程
java第九章-课件(PPT讲稿) 来自淘豆网m.daumloan.com转载请标明出处.