9+Java线程课件.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9Java线程课件

Java线程 本章主要内容 线程的概念模型 线程的创建和启动 线程的状态控制 临界资源、对象锁 线程的互斥和同步 9.1线程的概念 1.什么是进程? 进程就是一个在内存中独立运行的程序,有自己的地址空间 。如正在运行的写字板程序就是一个进程 “多任务”:指操作系统能同时运行多个进程(程序)。如WIN2K系统可以同时运行写字板程序、画图程序、WORD、EXCEL等 9.1线程的概念 2.什么是线程? 线程:是进程内部单一的一个顺序控制流。 线程和进程 每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。 线程: 轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 多线程: 在同一个进程中有多个顺序流同时执行 9.1线程的概念 3.JAVA线程的概念模型 虚拟的CPU,由java.lang.Thread类封装和虚拟 CPU所执行的代码,传递给Thread类对象。 CPU所处理的数据,传递给Thread类对象。 9.1线程的概念 4.线程体 Java的线程是通过java.lang.Thread类来实现的。 每个线程都是通过某个特定Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体(即线程的可执行代码)。 9.1线程的概念 9.1线程的概念 6.主线程 在任何Java程序启动时,一个线程立刻运行(即mian方法对应的线程),该线程通常称为程序的主线程。 主线程的特点: 它是产生其他子线程的线程。 它不一定是最后完成执行的线程,子线程可能在它结束之后还在运行。 9.2Thread类和Runnable接口 1.java.lang.Thread类 这个类包含了创建和运行线程所需的一切东西 构造函数: public Thread(); public Thread(Runnable?target); public Thread(ThreadGroup?group, Runnable?target); public Thread(String?name); public Thread(ThreadGroup?group, String?name); public Thread(Runnable?target, String?name); public Thread(ThreadGroup?group, Runnable?target, String?name); 参数说明: target:一个对象,线程启动后它的run方法会被调用。如果该参数为null,那么thread对象本身的run方法会被调用 group:线程组对象 name:新线程对象的名字 9.2Thread类和Runnable接口 常用方法: public void start();//启动该线程,将导致run方法被自动调用。该方法将立即返回,新线程将运行 public void run();//必须覆盖该方法,在方法体中添加你想要在该线程中执行的代码 public static void sleep(long?millis) throws InterruptedException;//使当前正在执行的线程睡眠指定的时间 public void interrupt();//用于将一个中断请求发送给线程 public static boolean interrupted();//用于测试当前线程(即正在执行该指令的线程)是否已经被中断 public boolean isInterrupted();//用于测试某个线程是否已经被中断 public final boolean isAlive();//用于测试某个线程是否还活着 public final void setPriority(int?newPriority);//设置线程的优先级 9.2Thread类和Runnable接口 public final void join(long?millis) throws InterruptedException;//使某个线程等待指定的时间。调用某线程的该方法,将当前线程与该线程“合并”,即等待该线程结束,再恢复当前线程的运行。 public final int getPriority() ; //获得线程的优先级 public static Thread currentThread();返回代表当前正在执行的线程的Thread对象 public static void yield() ;使当前正在执行的线程临时暂停,以使其它的线程运行 public final void wait(long?timeout) throws InterruptedException;当前线程被中

文档评论(0)

baa89089 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档