- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 多线程 课程回顾 在Java异常机制中的关键词有哪几个? 什么是面向接口编程,它的好处是什么? 本章目标 理解进程与线程的概念 掌握多线程的实现 掌握使用线程同步解决线程安全 理解线程生命周期 1.线程入门 第九章:实现线程 假设有一个程序,包括下面三种活动: 从文件中读取几个数据块。 对每个数据块执行某些计算。 将计算结果写到另一个文件中。 单线程: 读块1 计算1 输出1 读块2 计算2 输出2 多线程: 2.线程实现 多线程实现方式 线程实现 继承Thread类 2.2 实现Runnable接口 2.3 Thread类与Runnable接口的区别 Thread类与Runnable接口 2.4 线程操作方法 线程操作方法 线程操作方法 线程操作方法 线程操作方法 线程操作方法 3.同步与死锁 3.2 线程同步 线程同步 线程同步 3.3 死锁 4.线程生命周期 4.2 线程状态 线程状态 本章总结 Java中实现多线程有两种方式: 继承Thread类和实现Runnable接口 解决线程中资源共享的安全问题可以使用什么方法? 同步代码块和同步方法实现 线程在整个生命周期中具有哪五种状态? 创建、就绪、运行、阻塞和终止 * * * 进程与线程 进程是指在系统中正在运行的一个应用程序,线程是比进程更小的执行单位 一个进程可以产生多个线程,多线程机制使程序运行效率变得更高 输出2 计算2 读块1 计算1 输出1 读块2 读块3 计算3 输出3 多线程实现 实现Runnable接口 继承Thread类 public class ThreadDemo extends Thread { private String name; public ThreadDemo(String name){ this.name = name; } public void run(){ for(int i=1;i=5;i++){ System.out.println(name+运行,i=+i); } } public static void main(String[] args) { new ThreadDemo(线程A).start(); new ThreadDemo(线程B).start(); } } 继承Thread类,重写run()方法 继承Thread类 重写run()方法 正确启动线程不能直接调用run()方法. 2.1 继承Thread类 public class ThreadDemo extends Thread { private String name; public ThreadDemo(String name){ this.name = name; } public void run(){ for(int i=1;i=5;i++){ System.out.println(name+运行,i=+i); } } public static void main(String[] args) { ThreadDemo demo = new ThreadDemo(线程A); demo.start(); demo.start(); } 一个线程类对象只能调用一次start()方法 调用两次start()方法,出现异常 public class ThreadDemo implements Runnable{ private String name; public void run(){ for(int i=1;i=15;i++){ System.out.println(name+运行,i=+i); } } public static void main(String[] args) { ThreadDemo demo1 = new ThreadDemo(); ThreadDemo demo2 = new ThreadDemo(); new Thread(demo1).start(); new Thread(demo2).start(); } } 实现Runnable接口,重写run()方法,通过向Thread()方法传递Runnable对象参数来实现线程 继承Thread类受单继承影响,不
文档评论(0)