- 4
- 0
- 约1.57万字
- 约 13页
- 2016-10-12 发布于贵州
- 举报
java线程基识小结
java线程基本知识小结
看了一阵子java线程方面的知识,《thinking in java 3rd》,《effective java 2nd》,感觉还是雾里看花,难以得其精髓。多线程编程本来就是一门很玄奥的学问,不是看一些基础的语法知识就能真正掌握的。在实践中去揣摩,我想才是最好的方法。奈何我现在没有这样的条件,离论文开题的时间不远了,我还没有摸到头绪,真不知道是该坚持还是放弃。扯远了,还是回到线程来吧,虽然不得要领,但还是要把一些基础的东西总结一下,一旦以后需要用到的时候,也可以方便地回顾。
1. 线程的创建java中创建一个线程有两种方式:1.1. 扩展Thread类,并重载run()方法
public?class?ThreadName?extends?Thread?{????public?void?run()?{????????//?do?something?here????}}
1.2. 实现runnable接口,并调用Thread提供的构造函数
public?class?ThreadName?implements?Runnable?{????public?void?run()?{????????//?TODO?Auto-generated?method?stub????}????????public?void?main(String?args[])?{????????Thread?thread?=?new?Thread(new?ThreadName());????????thread.start();????}}
?
这两种方法各有利弊。简单来说,如果你确定当前的类就是作为一个单纯的线程来实现,不需要再继承其他任何类的时候,那么最好就用第一种方式,因为简单,而且可以直接就获得Thread所提供的各种方法,在类内部使用;反之,如果你需要继承其他类,或者将来可能会有这种需要,那么就用第二种方法。第二种方法需要注意的地方是,当你实现了Runnable接口后,你仅仅是实现了该接口而已,你现在所有的只是一个run()方法,即使你生成一个对象来调用run()方法,和普通的方法调用也没什么两样,并不会创建一个新的线程。只有当你用Thread构造函数创建一个对象之后,这才是新创建了一个线程。当你使用第二种方法的时候,可能你也想在类内部调用Thread所提供的一些方法,这时可以用Thread.currentThread()来获得当前线程的引用。2. 线程的运行当你获得一个线程实例thread后,使他开始运行的唯一方法就是thread.start(),由java虚拟机调用该线程的run方法。注意不是调用run()方法来启动线程。当你调用run()方法时,如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。另外要注意,多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。3. 结束线程运行就我目前所知,有两种结束线程的方法(我是指通过直接操作线程对象的合法方法)。3.1. 在线程内部设置一个标记为volatile的标志位
public?class?StopThread?extends?Thread?{????public?volatile?boolean?stop?=?false;????????private?static?int?i?=?0;????????public?void?run()?{????????while(!stop)?{????????????i++;????????}????????????????System.out.println(i);????}????/**?*//**?????*?@param?args?????*/????public?static?void?main(String[]?args)?{????????StopThread?thread?=?new?StopThread();????????thread.start();????????????????try?{????????????sleep(2000);????????}?catch?(InterruptedException?e)?{????????????//?TODO?Auto-generated?catch?block????????????e.printStackTrace();????????}????????????????thread.stop?=?true;
您可能关注的文档
最近下载
- 【高考真题】2022年新高考物理真题试卷——湖南卷(含答案).pdf VIP
- 毕业设计论文-江苏工程职业技术学院.doc VIP
- 新人教版八年级物理下册第七章练习题.docx VIP
- 2022电网企业文化、电力与能源战略题库.pptx VIP
- 索尼A7RM3A使用说明书+入门帮助指南【完整电子版】.pdf VIP
- 【武汉市生鲜农产品的冷链物流发展现状、问题及对策探究16000字(论文)】 .pdf
- 2026版教师职称-山西-山西教师职称(基础知识、综合素质、高中信息技术)历年参考题库含答案解析5套.docx VIP
- 2020-2021学年江苏省淮安市淮阴中学八年级(上)期末物理试卷含解析.doc VIP
- 变压器油中溶解气体在线监测装置.docx VIP
- 2026年春新版二年级道德与法治下册教学计划(含教学进度表).pdf VIP
原创力文档

文档评论(0)