- 5
- 0
- 约9.54千字
- 约 13页
- 2016-12-06 发布于重庆
- 举报
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;
您可能关注的文档
最近下载
- 电子倍增层背散射效应对增益及噪声的影响研究.pdf
- 弹簧模型-2023年高考物理动量常用模型模拟题精练(解析版).pdf VIP
- REF615使用操作说明书 (1).pdf
- (高清版)DB33 686-2019 机制纸板和卷烟纸单位产品能耗限额及计算方法.pdf VIP
- 7.3 世界上最大的黄土堆积区—黄土高原 第2课时(教学课件)-2025-2026学年八年级地理下册(人教版2024).pptx
- 深度解析(2026)《SFT 0074-2020耕地和林地破坏司法鉴定技术规范》.pptx VIP
- 2024年贵州省高考生物真题卷(含答案与解析)_7674.pdf VIP
- 弹簧模型-动量守恒的十种模型2025高考物理专项复习含答案.pdf VIP
- 市政协领导班子2024年民主生活会对照检查发言材料(四个带头).docx VIP
- 市政协副主席2024年民主生活会对照检查材料(四个带头).docx VIP
原创力文档

文档评论(0)