java 之 thread
来源:互联网 发布:杭州java培训哪家好 编辑:程序博客网 时间:2024/05/15 23:45
http://www.cnblogs.com/DreamSea/archive/2012/01/11/JavaThread.html
线程的定义(Defining)
定义一个线程(Defining a Thread)有两种方法
1) 继承java.lang.Thread类
/** * 使用继承java.lang.Thread类的方式创建一个线程 * * @author DreamSea 2011-12-29 20:17:06 */public class ThreadTest extends Thread { /** * 重写(Override)run()方法 JVM会自动调用该方法 */ public void run() { System.out.println("I'm running!"); }}
注意:重写(override)run()方法在该线程的start()方法被调用后,JVM会自动调用run方法来执行任务;但是重载(overload)run()方法,该方法和普通的成员方法一样,并不会因调用该线程的start()方法而被JVM自动运行。 例如:
public class ThreadTest extends Thread { /** * 重写(Override)run()方法 JVM会自动调用该方法 */ @Override public void run() { System.out.println("I'm running!"); } /** * 重载(Overload)run()方法 和普通的方法一样,并不会在该线程的start()方法被调用后被JVM自动运行 */ public void run(int times) { System.out.println("I'm running!(Overload)"); }}
不建议使用此方法定义线程,因为采用继承Thread的方式定义线程后,你不能在继承其他的类了,导致程序的可扩展性大大降低。
以下方法不便创建多个thread线程:-----------------------------------
Runnable是Thread的接口,在大多数情况下“推荐用接口的方式”生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。
使用Thread:
只需要new一个实例出来,调用start()方法即可以启动一个线程。
Thread Test = new Thread();
Test.start();
使用Runnable:
需要先new一个继承Runnable的实例,之后用子类Thread调用。
Test impelements Runnable
Test t = new Test();
Thread test = new Thread(t); //在我的实际用例里,t 是 this
在某个题目里,需要分别打印出a与b各10次,并且每打印一次a睡1秒,打印一次b睡2秒:
class T implements Runnable{ String s = ""; int time = 0; public void run (){ for (int i=0;i<10;i++) { try { Thread.sleep(time); } catch (InterruptedException e) { Thread.interrupted(); } System.out.println(s); } } }public class Test { public static void main(String[] args) { T t1 = new T(); T t2 = new T(); t1.s = "a"; t1.time = 100; t2.s = "b"; t2.time = 200; Thread a = new Thread(t1); a.start(); Thread b = new Thread(t2); b.start(); }}
转自(百度和网页http://jinguo.iteye.com/blog/286772
- Java Thread 之 Join
- java 之 thread
- 多线程之Thread--JAVA
- java并发之Thread
- java学习之Thread
- Java之线程Thread
- Java之Thread总结
- Java的Thread之join
- Java Thread学习之二
- Java Thread学习之三
- Java Thread学习之四
- Java Thread学习之五
- Java Thread学习之六
- Java Thread学习之七
- java之线程thread生命周期
- Java之Thread初使用
- JAVA多线程之Thread&&Runnable
- (一)java多线程之Thread
- java快速排序
- romfs 文件系统学习
- Web 网页通信之长连接、长轮询
- uint32_t
- 电脑桌面任务栏中已打开的窗口隐藏了解决方法
- java 之 thread
- 访问者模式讨论篇:java的动态绑定与双分派
- 装eclipse前JDK配置及原因
- 百度2014终端类校招笔试、1、2、3面经历总结
- MFC的控件大小如何随对话框改变
- Android 软键盘显示与隐藏
- web缓存技术
- CSS3之背景定位原点background-origin
- LInux Bridge(FDB表)