1.理解进程和线程的概念,学习java中线程的使用 ;2.掌握线程...【推荐-PPT】.pptVIP

1.理解进程和线程的概念,学习java中线程的使用 ;2.掌握线程...【推荐-PPT】.ppt

  1. 1、本文档共55页,可阅读全部内容。
  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文档。上传文档
查看更多
1.理解进程和线程的概念,学习java中线程的使用 ;2.掌握线程...【推荐-PPT】

1.理解进程和线程的概念,学习java中线程的使用 ; 2.掌握线程的状态和生命周期、线程的调度和控制方法; 3.理解多线程的互斥和同步的实现原理,以及多线程的应用,能够熟练编写关于线程、线程间的同步与通信的小程序 ;9.1 多线程的概念;线程和进程有很多相似的特征,线程可以被看作是进程的进一步细分,也就是把进程完成的任务划分成一个个更小的子任务,每一个子任务就是一个线程,然后用细分的这些线程分别去执行。线程是基于进程的一个基本运行单位,线程同样包括一个内存入口点地址、一个出口点地址以及能够顺序执行的代码序列。但是线程与进程的重要区别在于线程不能够单独执行,它必须运行在处于活动状态的进程中,线程本身的数据通常只有微处理器的寄存器数据以及一个供程序执行时使用的堆栈,因此可以定义线程是程序内部的顺序代码流,也就是说线程是在进程作用域内活动的一系列指令流,所以线程也被称为轻型进程(Light Weight Process,LWP)。;多线程; (a)单线程程序;Java中的多线程机制;对多线程的综合支持是Java语言的一个重要特色,在Java中,内置了Thread类来实现多线程,当程序引用了java.lang.Thread类,也就引入了一个Java执行环境。由图9.2可知,一个线程是由三部分组成的: 虚拟处理机(CPU),封装在java.lang.Thread类中,它控制着整个线程的运行,提供对多线程的支持; 执行的程序代码,传递给Thread类,由Thread类控制顺序执行; 程序所处理的数据,传递 给Thread类,是在代码执 行过程中所要处理的数据。;在Java编程中,虚拟处理机(CPU)被封装在Thread线程类的实例之中。这样一来,有多少个需要完成的子任务(线程)就有多少个虚拟CPU这样的“虚拟计算机”在同时运行,把一个较大的任务分割成许多较小的子任务分别地、“同时”地去完成,这就是Java多线程机制。 Java的线程是通过java.lang包中定义的类Thread来实现的。当生成一个Thread类的对象之后,就产生了一个线程,通过该对象实例,可以启动线程、终止线程、或者暂时挂起线程等。由于Java在语言级提供了对线程的支持,所以在Java语言中使用多线程要远比在其它语言中使用线??简单得多。;9.2 线程类及其线程创建;在线程构造方法中,每个参数都可以为空,当上述构造方法的某个参数为null时,就可以得到下面的几个构造方法: public Thread(); public Thread(String name); public Thread(Runnable target); public Thread(Runnable target,String name); public Thread(ThreadGroup group,String name); public Thread(ThreadGroup group,Runnable target); ;Thread类中也有许多有用的方法,在这里只介绍部分常用的方法: 1. public static void yield();引起当前执行线程暂停,允许其他线程执行。 2. public static void sleep(long millis);使当前执行的线程睡眠指定的时间。参数millis是线程睡眠的毫秒数。如果这个线程已经被别的线程中断,就会产生InterruptedException异常。 3. public void start();使线程由新建状态变成可运行状态。 4. public void run();如果线程实例是使用实现了Runnable接口的类的实例创建的,就调用这个类的实例的run( )方法,否则什么都不做并返回。 5. public final void stop();停止(杀死)当前线程。 6. public final void wait();返回当前线程所在的线程组中的线程的数目 7. public final boolean isAlive();测试线程是否处于活动状态,即已启动,但还没有终止。 8. public final void setPriority(int new);改变线程的优先级。 9. public static Thread currenthread();返回当前执行线程对象的引用。 10. public final void notify();唤醒一个等待中的线程。 11. public final void notifyAll();唤醒所有处于等待中的线程。;线程的创建;1.扩展Thread类 类Thread位于java.lang包中,由于java.lang包自动被导入每个Java程序中,

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档