- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
张孝祥_Java多线程与并发库高级应用
【视频介绍:】
Java线程是一项非常基本和重要的技术,在偏底层和偏技术的Java程序中不可避免地要使用到Java线程技术,特别是android手机程序和游戏开发中,多线程成了必不可少的一项重要技术。但是,很多Java程序员对Java线程技术的了解都仅停留在初级阶段,在项目中一旦涉及到多线程时往往就表现得糟糕至极,所以,软件公司常常使用Java线程技术来考察面试者的基本功和判断其编码水平的高低。
本套视频教程是专门为了帮助那些已经学习和了解过、但掌握得并不是很深入的人们提高java线程技术而讲解的,所以,Java线程初学者学习本视频教程时可能会比较吃力,可能必须耐心学习多遍才能渐入佳境,但是,你一旦掌握了其中的内容,你对Java线程技术的了解将会相当出众!
【视频目录列表:】
01. 传统线程技术回顾
02. 传统定时器技术回顾
03. 传统线程互斥技术
04. 传统线程同步通信技术
05. 线程范围内共享变量的概念与作用
06. ThreadLocal类及应用技巧
07. 多个线程之间共享数据的方式探讨
08. java5原子性操作类的应用
09. java5线程并发库的应用
10. Callable与Future的应用
11. java5的线程锁技术
12. java5读写锁技术的妙用
13. java5条件阻塞Condition的应用
14. java5的Semaphere同步工具
15. java5的CyclicBarrier同步工具
16. java5的CountDownLatch同步工具
17. java5的Exchanger同步工具
18. java5阻塞队列的应用
19. java5同步集合类的应用
20. 空中网挑选实习生的面试题1
21. 空中网挑选实习生的面试题2
22. 空中网挑选实习生的面试题3
23. 源代码与资料
01. 传统线程技术回顾
传统是相对于JDK1.5而言的
传统线程技术与JDK1.5的线程并发库
线程就是程序的一条执行线索/线路。
创建线程的两种传统方式
创建Thread的子类,覆盖其中的run方法,运行这个子类的start方法即可开启线程
Thread thread = new Thread()
{ @Override
public void run()
{
while (true)
{
获取当前线程对象 获取线程名字
Thread.currentThread() threadObj.getName()
让线程暂停,休眠,此方法会抛出中断异常InterruptedException
Thread.sleep(毫秒值);
}
}
};
thread.start();
创建Thread时传递一个实现Runnable接口的对象实例
Thread thread = new Thread(new Runnable()
{
public void run()
{}
});
thread.start();
问题:下边的线程运行的是Thread子类中的方法还是实现Runnable接口类的方法
new Thread(
b、传递实现Runnable接口的对象
new Runnable()
{
public void run()
{}
}
){
a、覆盖Thread子类run方法
public void run(){}
}.start();
分析:new Thread(Runnable.run()){run()}.start();
子类run方法实际就是覆盖父类中的run方法,如果覆盖了就用子类的run方法,不会再找Runnable中的run方法了,所以运行的是子类中的run方法
总结:
由Thread类中的run方法源代码中看出,两种传统创建线程的方式都是在调用Thread对象的run方法,如果Thread对象的run方法没有被覆盖,并且像上边的问题那样为Thread对象传递了一个Runnable对象,就会调用Runnable对象的run方法。
多线程并不一定会提高程序的运行效率。举例:一个人同时在三张桌子做馒头
多线程下载:并不是自己电脑快了,而是抢到更多服务器资源。例:服务器为一个客户分配一个20K的线程下载,你用多个线程,服务器以为是多个用户就分配了多个20K的资源给你。
02. 传统定时器技术回顾
传统定时器的创建:直接使用定时器类Timer
a、过多长时间
您可能关注的文档
最近下载
- TUPSW微机控制电力专用不间断电源(UPS)系统使用说明书.doc VIP
- 部编版2024道德与法治七年级下册4.1人要有自信 教学设计.docx
- 风险决策模型层次分析法.ppt VIP
- 2018秋九年级英语全册 10分钟课堂 unit 2 i think that mooncakes are delicious section a(grammar focus-4c)课件 (新版)人教新目标版.ppt VIP
- 2024年秋鲁教版(五四制)六年级上册英语教学课件 Bridging Unit3 Section A.pptx
- 层次分析法AHP、层次分析法.ppt VIP
- 肺微波消融临床护理要点.pptx VIP
- 机器人学机器视觉与控制 MATLAB算法基础.pdf VIP
- 2025年大庆职业学院单招职业技能测试题库参考答案.docx VIP
- 艾莫迅modbus转以太网_4串口服务器_RS485-ETH-M04_v1.0.pdf VIP
文档评论(0)