电子商务技术基础 第6章 线程.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文档。上传文档
查看更多
电子商务技术基础 第6章 线程

yield()使当前线程重新回到可执行状态,可是实现多线程的交互执行。排程器从可执行状态的线程中重新进行排程。所以调用了yield()的函数也有可能马上被执行。 * P o w e r B a r 中国专业PPT设计交流论坛 第6章 线程 白宏 6.1 线程 进程,是系统运行的基本单元,一个进程中至少包括一个线程(主线程),作为程序运行的入口。进程间不共享内存,而同一进程内的各线程可共享内存数据。 通过多线程,可以实现并发操作、提升系统运行效率、改善用户体验等功能。 在Java语言中,通过Thread类及其子类,或者通过实现Runnable接口,创建的对象称作线程。 6.1 线程 Java应用程序运行时启动一个线程,这个线程称作“主线程”,该线程负责执行main方法。 如果main方法中没有创建其他的线程,那么当main方法执行完时Java应用程序结束。 如果main方法中又创建了其他线程,那么JVM在主线程和其他线程之间轮流切换,轮流执行,这时JVM要等到主线程中的所有线程都执行结束后,才结束Java应用程序。 6.1 线程-生命周期 新建 运行 中断 死亡 为线程分配内存空间和资源 线程调用start()方法通知JVM新线程排队,当JVM将CPU使用权切换给线程时run()方法就立刻执行 程序在Thread类的子类中重写run()方法来覆盖父类的run()方法,从而规定了该线程的具体使命; 在线程没有结束run ()方法之前,线程不能再调用start方法。 线程中断条件: 1. JVM将CPU资源从当前线程切换给其他线程。 2. 线程运行期间执行了sleep()方法,使当前线程进入休眠状态。 3. 线程运行期间,执行了wait()方法,使得当前线程进入等待状态。 4. 线程执行期间,执行某个操作从而进入阻塞状态。 线程死亡条件: 1.线程完成全部工作,结束了run方法。 2.强制run方法结束,如执行return或者interrupted()中断线程 。 线程释放分配的内存空间和资源 6.1 线程-优先级 Java虚拟机把线程的优先级分为10个级别,分别用Thread类中的类常量表示。 可以通过线程的setPriority(int grade)方法调整,getPriority()方法返回线程的优先级 Thread.MIN_PRIORITY 1 Thread.MAX_PRIORITY Thread.NORM_PRIORITY 10 5 6.2 创建线程 通过继承Thread类创建线程; Thread类的run方法没有任何操作语句,因此创建线程需要重写run方法,完成具体业务。 6.2 创建线程 线程的常用方法 start() 线程调用该方法将启动线程,使之从新建状态进入就绪队列排队 run() 用来定义线程对象被调度之后所执行的操作 继承Thread类,主要需要重写父类的run方法 run()方法由系统自动调用,用户程序不得引用 sleep(int millsecond) 线程在run方法中调用sleep方法来使自己放弃CPU资源,休眠millsecond毫秒 6.2 创建线程 线程的常用方法 currentThread() 返回当前正在使用CPU资源的线程 interrupt() 唤醒休眠的线程,重新排队等待CPU资源 getName() 返回该线程的名称 setName(String?name) 设置该线程的名称为name 6.2 创建线程 class Pet extends Thread{ Pet(String s){ setName(s); } public void run(){ for(int i=1;i=8;i++){ System.out.println(Thread:我是+getName()+:+i); } } } public class DemoThread{ public static void main(String args[ ]){ Pet garfield,odie; garfield=new Pet(加菲); odie=new Pet(欧迪); garfield.start(); for(int i=1;i=8;i++){ System.out.println(Main:我是老姜+:+i);

文档评论(0)

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

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

1亿VIP精品文档

相关文档