线程创建方法
2012-09-28 22:01
155 查看
第一种方式:使用Runnable接口创建线程。
使用Runnable接口创建线程:
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
用Runnanble 创建线程的步骤:
1.定义一个Runnable接口类。
2.在此接口类中定义一个对象作为参数run()方法。
3.在run()方法中定义线程的操作。
4.在其它类的方法中创建此Runnable接口类的实例对象,并以此实例对象作为参数创建线程类对象。
5.用start()类方法启动线程。
使用Runnable接口方法创建线程和启动线程。
eg:
[align=left]public class MyThread implements Runnable //使用Runnable接口方法创建线程和启动线程。[/align]
[align=left]{[/align]
[align=left]int count=1,number;[/align]
[align=left]public MyThread(int num)[/align]
[align=left]{[/align]
[align=left]number=num;[/align]
[align=left]System.out.println("创建线程"+number);[/align]
[align=left]}[/align]
[align=left]public void run()[/align]
[align=left]{[/align]
[align=left]while(true)[/align]
[align=left]{[/align]
[align=left]System.out.println("线程"+number+":计数"+count);[/align]
[align=left]if(++count==3) return;[/align]
[align=left]}[/align]
[align=left]}[/align]
[align=left]public static void main (String args[] )[/align]
[align=left]{[/align]
[align=left]for(int i=0;i<2;i++)([/align]
[align=left]new Thread(new MyThread(i+1)).start(); //启动线程[/align]
[align=left]}[/align]
[align=left]}[/align]
第二种方式:直接继承Thread类创建对象。
直接继承Thread类创建对象:
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。在实际应用中,几乎都采取第一种方式 。
用Thread创建线程的步骤为:
(1)定义线程类:
public class 线程类名 extends Thread {
……
public void run(){
…… //编写线程的代码
}
}
(2)创建线程类对象:线程类名
线程类对象 = new 线程类名();
(3)启动线程: 线程类对象.start();
eg:
public static void main(String[] args) {
线程类名 线程类对象 = new 线程类名();
线程类对象.start();
}
使用Runnable接口创建线程:
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
用Runnanble 创建线程的步骤:
1.定义一个Runnable接口类。
2.在此接口类中定义一个对象作为参数run()方法。
3.在run()方法中定义线程的操作。
4.在其它类的方法中创建此Runnable接口类的实例对象,并以此实例对象作为参数创建线程类对象。
5.用start()类方法启动线程。
使用Runnable接口方法创建线程和启动线程。
eg:
[align=left]public class MyThread implements Runnable //使用Runnable接口方法创建线程和启动线程。[/align]
[align=left]{[/align]
[align=left]int count=1,number;[/align]
[align=left]public MyThread(int num)[/align]
[align=left]{[/align]
[align=left]number=num;[/align]
[align=left]System.out.println("创建线程"+number);[/align]
[align=left]}[/align]
[align=left]public void run()[/align]
[align=left]{[/align]
[align=left]while(true)[/align]
[align=left]{[/align]
[align=left]System.out.println("线程"+number+":计数"+count);[/align]
[align=left]if(++count==3) return;[/align]
[align=left]}[/align]
[align=left]}[/align]
[align=left]public static void main (String args[] )[/align]
[align=left]{[/align]
[align=left]for(int i=0;i<2;i++)([/align]
[align=left]new Thread(new MyThread(i+1)).start(); //启动线程[/align]
[align=left]}[/align]
[align=left]}[/align]
第二种方式:直接继承Thread类创建对象。
直接继承Thread类创建对象:
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。在实际应用中,几乎都采取第一种方式 。
用Thread创建线程的步骤为:
(1)定义线程类:
public class 线程类名 extends Thread {
……
public void run(){
…… //编写线程的代码
}
}
(2)创建线程类对象:线程类名
线程类对象 = new 线程类名();
(3)启动线程: 线程类对象.start();
eg:
public static void main(String[] args) {
线程类名 线程类对象 = new 线程类名();
线程类对象.start();
}
相关文章推荐
- 正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不
- 创建线程的几种方式,以及为什么启动线程不用run,而用start方法!!!
- Java创建线程的两个方法
- Java创建线程的两个方法
- 区分JAVA创建线程的几种方法
- java创建线程的两种方法比较
- JAVA中线程创建的2种方法
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 创建线程的第三种方法-callable futureTask
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 线程(10)--线程池的应用之创建线程的第三种方法
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
- 创建线程的三种方法
- java创建线程的两个方法
- Java创建线程的两个方法
- python 8-1 如何使用多线程,Thread创建线程,执行函数赋值给target//类+函数放在run方法中执行
- 创建一种线程的方法续
- Android App在线程中创建handler的方法讲解
- C# 引发“线程间操作无效: 从不是创建控件“XXX”的线程访问它” 解决方法
- 2-5-Java多线程-创建线程的Runnable接口方法及Thread源码解析