Java基础学习----不同种创建线程的区别
2014-08-16 18:56
316 查看
今天看了基础视频的线程,发现以前看书学到的东西好少,下面跟大家分享一下,说得多多指教,开始吧!
两种创建线程的方法及区别
两种创建线程的方法:
1.继承Thread类,格式:class 线程名 extends Thread
class myThread extends Thread{}
复制代码
2.实现Runnable接口,格式:class 线程名 implements Runnable
class myThread implements Runnable{}
复制代码
区别分析:
示例目的:创建三个线程一起卖票,用两种方法做,看实际效果
方法1(继承Thread类):
public class ThreadDemo1 {
public static void main(String[] args) {
new Thread1().start();
new Thread1().start();
new Thread1().start();
}
}
class Thread1 extends Thread{
int tickets =5; //5张票
public void run(){
while(true){
if(tickets > 0)
System.out.println("run() at "+Thread.currentThread().getName()+" is saling "+tickets--);
}
}
}
复制代码
测试结果:
观察结果发现,每个线程对象都有5张票,每个线程卖自己的5张票,没有共享这5张票。
方法2(实现Runnable接口):
public class ThreadDemo1 {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
new Thread(t1).start();
new Thread(t1).start();
new Thread(t1).start();
}
}
class Thread1 implements Runnable{
int tickets =20; //为了测试出效果,可以多增加票数
public void run(){
while(true){
if(tickets > 0)
System.out.println("run() at "+Thread.currentThread().getName()+" is saling "+tickets--);
}
}
}
复制代码
测试结果:
观察发现,达到了目的,三个线程在一起共享这20张票。
总结:
1.继承Thread来创建线程类的方法,在继承了Thread后,不能再继承其他类,这样灵活性就不如实现Runnable接口来创建线程类的方法了;
2.正如上面所说的使用实现Runnable接口来创建线程类的方法可以达到资源共享。
(在这里说明一下:继承Thread类来创建线程类的方法也可以实现资源共享,只不过比较麻烦!!!因此,在创建线程类的时候,应优先选择实现Runnable接口来创建线程类的方法!!!)
两种创建线程的方法及区别
两种创建线程的方法:
1.继承Thread类,格式:class 线程名 extends Thread
class myThread extends Thread{}
复制代码
2.实现Runnable接口,格式:class 线程名 implements Runnable
class myThread implements Runnable{}
复制代码
区别分析:
示例目的:创建三个线程一起卖票,用两种方法做,看实际效果
方法1(继承Thread类):
public class ThreadDemo1 {
public static void main(String[] args) {
new Thread1().start();
new Thread1().start();
new Thread1().start();
}
}
class Thread1 extends Thread{
int tickets =5; //5张票
public void run(){
while(true){
if(tickets > 0)
System.out.println("run() at "+Thread.currentThread().getName()+" is saling "+tickets--);
}
}
}
复制代码
测试结果:
观察结果发现,每个线程对象都有5张票,每个线程卖自己的5张票,没有共享这5张票。
方法2(实现Runnable接口):
public class ThreadDemo1 {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
new Thread(t1).start();
new Thread(t1).start();
new Thread(t1).start();
}
}
class Thread1 implements Runnable{
int tickets =20; //为了测试出效果,可以多增加票数
public void run(){
while(true){
if(tickets > 0)
System.out.println("run() at "+Thread.currentThread().getName()+" is saling "+tickets--);
}
}
}
复制代码
测试结果:
观察发现,达到了目的,三个线程在一起共享这20张票。
总结:
1.继承Thread来创建线程类的方法,在继承了Thread后,不能再继承其他类,这样灵活性就不如实现Runnable接口来创建线程类的方法了;
2.正如上面所说的使用实现Runnable接口来创建线程类的方法可以达到资源共享。
(在这里说明一下:继承Thread类来创建线程类的方法也可以实现资源共享,只不过比较麻烦!!!因此,在创建线程类的时候,应优先选择实现Runnable接口来创建线程类的方法!!!)
相关文章推荐
- Java基础学习总结(88)——线程创建与终止、互斥、通信、本地变量
- java基础学习总结——线程之使用Runnable接口创建线程的方法
- java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
- JAVA学习笔记49——线程概念+进程、线程区别+创建进程三种方法
- Java多线程基础学习之线程的创建方式总结
- Java基础学习总结(88)——线程创建与终止、互斥、通信、本地变量
- Java基础学习笔记(十)线程的创建总结
- 黑马程序言 Java基础学习笔记12 线程的创建
- JAVA基础学习(十一)--多线程一线程的创建,运行,同步和锁
- java io学习基础之 文本文件与二进制文件的区别(转)
- Java基础第十二天学习日记_线程、线程的同步、线程间通讯
- java基础学习笔记之九--线程(1)
- Java基础学习5_多线程(线程间通信--等待唤醒机制)
- java线程之基础学习总结(二)
- java学习日记(5)——创建线程的两种基本方法
- java线程之基础学习总结(三)
- java基础学习__多线程(停止线程,守护线程,join方法)
- java多线程学习1-继承Thread类和实现Runnable接口来创建线程
- Java学习:线程基础(一)
- java基础学习笔记之九--线程(2)