【精选】多线程处理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【精选】多线程处理

线程 线程的概念 程序 (Program):是一段静态的代码,它是应用软件执行的蓝本。 进程(Process):是程序的一次执行过程,是系统运行程序的基本单位,它对应了从代码加载、执行至执行完毕的一个完整过程。 线程(Thread):是比进程更小的执行单位。相当于一个任务中的一条执行路径。 线程的概念 进程与线程 每个进程都有一段专用的内存区域 线程可共享相同的内存单元(包括代码和数据) 多进程:在操作系统中能同时运行多个程序 多线程:在同一个应用程序中有多个顺序流同时执行 多线程的目的是为了最大限度的利用CPU资源。 Java的线程 Java应用程序总是从主类的main方法开始执行。当JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称作“主线程”,该线程负责执行main方法。那么,在main方法中再创建的线程,就称为主线程中的线程。 每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体,通过调用Thread类的start()方法来启动一个线程。 JVM在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源,main方法即使执行完最后的语句,JVM也不会结束我们的程序,JVM一直要等到主线程中的所有线程都结束之后,才结束我们的Java应用程序。 线程的生命周期 新建 运行 中断 死亡 线程的优先级及调度管理 优先级:在多线程系统中,每个线程都被赋予一个执行优先级。优先级决定了线程被CPU执行的优先顺序。 线程的优先级及调度管理 线程调度器选择优先级最高的线程运行 同等优先级的线程以轮流的方式顺序使用时间片 但是,如果发生以下情况,就会终止线程的运行: 线程体中调用了yield()方法,让出了对CPU的占用权 线程体中调用了sleep()方法, 使线程进入睡眠状态 线程由于I/O操作而受阻塞 另一个更高优先级的线程出现 在支持时间片的系统中,该线程的时间片用完 线程的创建和启动 使用java.lang包中的Thread类的子类 实现Runnable接口 Thread类的子类来创建线程 用Runnable接口来创建线程 两种实现方式的区别和联系 在程序开发中多线程以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处: 避免点继承的局限,一个类可以实现多个接口 适合于资源的共享 线程的常用方法 GUI线程和计时器线程 当Java程序包含GUI时,JVM在运行应用程序时会自动启动若干线程 线程同步synchronized synchronized同步方法 synchronized关键字不能继承。 在定义接口方法时不能使用synchronized关键字。 构造方法不能使用synchronized关键字。 Synchronized的位置 不能放在方法返回类型的后面 在非静态方法中,synchronized还可以放在方法定义的最前面,在静态方法中,synchronized可以放在static的前面 synchronized关键字只能用来同步方法,不能用来同步类变量 wait()、notify()、notifyAll() * * * * Class A { public static void main(String args[]) { while(true) { System.out.println(“hello”); } while(true) { System.out.println(“你好”); } } } 运行结果? 线程的基本概念 线程的创建和启动 线程的常用方法 线程的同步机制 synchronized wait()、notify()、notifyAll() JVM负责管理这些线程 当一个Thread类或者其子类的对象被声明并创建时 已有相应的内存空间和其他资源 线程获得CPU的使用权 线程使用start()方法通知JVM,run()方法立刻执行 ILLegalThreadStateException JVM切换 sleep(int millsecond) wait() 阻塞 线程释放了实体,释放了分配给线程对象的内存 正常运行的线程完成了工作,结束run()方法 提前强制终止 线程的状态与生命周期 新建状态 Newborn 就绪状态 Runnable 运行状态 Running 消亡状态 Dead 其它阻塞 Blocked start() sleep时间到 interrupt() ru

文档评论(0)

vshoulrengb3 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档