java并发编程-1.1线程的创建方法及比较
来源:互联网 发布:文字复制软件 编辑:程序博客网 时间:2024/06/05 16:30
在java语言中,线程和其他所有元素一样,都是对象。java提供了两种方式来创建线程:
- 继承Thread类,并重写run()方法;
- 在类中实现Runnable接口,并实现run()抽象方法。使用带参数的Thread构造方法来创建Thread对象。该参数就是实现runnable接口的类的一个对象。
继承Thread类的实现:
public class Calculator extends Thread {private int number;public Calculator(int number){this.number = number;}@Overridepublic void run() {// TODO Auto-generated method stubfor(int i =1; i<=10;i++){System.out.printf("%s: %d * %d = %d\n", Thread.currentThread().getName(),number,i,i*number);}}public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=1; i<=10; i++){Calculator calculator = new Calculator(i);calculator.start();//子类对象调用调用父类方法}}}
实现Runnable接口的实现:
public class Calculator implements Runnable {private int number;public Calculator(int number){this.number = number;}@Overridepublic void run() {// TODO Auto-generated method stubfor(int i =1; i<=10;i++){System.out.printf("%s: %d * %d = %d\n", Thread.currentThread().getName(),number,i,i*number);}}public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=1; i<=10; i++){Calculator calculator = new Calculator(i);Thread thread = new Thread(calculator);//将实现Runnable接口的类的对象作为参数,新建Thread对象thread.start();}}}
对比:
从代码形式上看实现相同的功能,二者仅在main方法中有细微差别。
但由于Java不支持多继承,因此继承Thread类后不能再继承其他类。
另外Thread类包含多个成员方法,Runnable接口下只有一个抽象方法。若仅仅使用线程执行功能,则直接实现Runnable接口会更节省开销(代码区空间)。
综上,在多线程编程时最好使用第二种方法。
阅读全文
0 0
- java并发编程-1.1线程的创建方法及比较
- Java创建线程的三种方法比较及用法
- java中创建线程的两种方法及比较
- Java并发编程:线程、进程的创建
- Java并发编程:线程创建
- java并发编程-创建线程
- Java并发编程:线程池创建及源码分析
- Java创建线程的方法和比较
- [Java并发编程]-创建线程的两种方式及区别
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
- Java并发编程-03-守护线程的创建和运行
- Java并发编程:线程和进程的创建
- Java并发编程:线程和进程的创建(转)
- Java并发编程:线程的创建和执行
- Java并发总结(一): 线程的介绍及创建
- 使用GitHub Pages搭建个人博客
- 方格填数
- 河南省第十届acm省赛-最小秘钥——个人c++解
- JavaScript基础
- word文档中如何让正文分栏但是脚注不分栏
- java并发编程-1.1线程的创建方法及比较
- Qt之定时器、重绘窗口、窗口缩放、截屏、截图
- require "socket" 引发的一些问题
- 音频单元组件服务参考(Audio Unit Component Services Reference)
- EA&UML日拱一卒--序列图(Sequence Diagram)::门
- Doves and bombs UVA
- 内核资料:ALSA资料
- android用视频当做背景
- 算法——图之有向图