java9多线程最新.pptVIP

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

多线程 为什么要学习多线程!? Java 是为数不多的支持多线程编程(multithreaded programming)的计算机语言!以后的手机开发在这方面要求很高! 线程:程序中并发运行的各个部分都是一个线程! 并发:指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,担任一个时刻点上只有一个程序在处理机上运行。 要学习多线程,我们必须了解多任务处理哦! 因为多线程是多任务处理的一种特殊形式! 多任务处理 多任务处理,包括:基于进程的和基于线程的! 进程(process)本质上市一个执行的程序!所以,基于进程的多任务处理的特点是允许你的计算机同时运行俩个或者更多的程序!(如:同时运行QQ、暴风等等); 线程(thread)是最小的执行单位!所以,基于线程的多任务处理的特点是一个程序可以同时执行俩个或多个任务的功能!(如:QQ同时和多人聊天)~! 可以这样看待进程和线程:进程是将军,线程是小兵! 线程状态 线程存在于以下几种状态。 1.正在运行(running)。只要获得cpu就行 2.挂起(suspend),并临时中断它的执行 3.恢复(resume):允许它从停止的地方继续运行。 4.阻塞(block):在等待资源的时候被阻塞! 5.终止(terminate),这立即中断它的运行! 一旦终止,线程不能被恢复! 线程优先级 Java给每个线程安排优先级以决定与其他线程比较时该如何对待该线程。 线程优先级是详细说明线程间优先关系的整数。 线程优先级是用来决定何时从一个运行的线程切换到另一个线程去!这叫“上下文转换”! 线程转换的规则 1.线程可以自动放弃控制。在I/O未决定的情况下,睡眠或者阻塞由明确的让步来完成。在这种假定下,所有其他的线程被检测,准备运行的最高优先级线程被授予CPU! 2.资源可以被高优先级的线程抢占。在这种情况下,低优先级的线程不主动放弃,在那里等着高的执行完。基本上,一旦高优先级线程要运行,他就会执行。这叫做由优先权的多任务处理! (120) 同步性 当几个线程共享一项资源的时候,必须有方法来确保他们之间没有冲突,即一个线程在用的时候,其他的不能使用这个资源!为此,java实行了另一种方法:管程(monitor). 可以将管程看成一次只能控制一个线程的小盒子。一旦线程进入管程,所有其他的线程必须等到该线程退出了管程,才能在进去。用这种方法,管程可以用来防止共享的资源被多个线程操纵! Java没有Monitor类,但是他的每个对象都拥有自己的隐式管程,当对象的同步方法被调用时管程自动载入! Thread类和Runnable接口 Java类可以通过俩种方式可以让自己成为线程 1.继承Thread类. 2.实现Runnable接口(因为java是单继承,假如这个类已经继承了某个类,如果要再继承Thread就不行了,所以java提供了实现接口) Thread类 Thread类定义了如下方法来管理线程 1.getName 获得线程名字 2.getPriority 获得线程的优先级 3.isAlive 判定线程是否仍在运行 4.join 等待一个线程终止 5.run 线程的入口点 6.sleep 在一段时间内挂起线程 7.start 通过调用运行方法来启动线程 主线程(main thread) 当java程序启动时,一个线程立刻运行,该线程就是程序的主线程(main thread)! 主线程的重要性: 1.他是产生其他子线程的线程 2.通常他必须最后完成执行,因为它执行各种关闭动作! 主线程在程序启动时自动创建,默认名称是main,优先级是5.我们可以调用currentThread()来获得他的一个引用! currentThread()是Thread类的公有静态成员。 static Thread currentThread() Thread t=Thread.currentThread();//获得当前线程的引用 继承Thread类 通过继承Thread类将自己变成线程类 1.构建继承Thread类的线程类 2.重写run()方法 3.在主类中构造线程类,并通过调用start()方法来调用执行run(),启动线程! 练习 请编写一个程序,让程序每隔一秒在控制台上输出HelloWorld! package wcs; public class ThreadTest { public static void main(String[] args) { Bird bird=new Bird(); bird.start(); } } class Bird extends Thread{ //必须的去重写的run()函数 public void run

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档