线程的继承和实现
2012-11-09 17:34
99 查看
package Thread;
import java.text.DecimalFormat;
public class xiancheng {
/**
* @param Thread , Runnable
* >> 实现功能都一样,但Runnable是面向接口,扩展性比extends Thread 好;
* >> java是单继承,而接口可以实现多个;
*/
public static class xc{
public static long a=0;
public static Object obj=new Object();
public static void fun(){
synchronized (obj) {
DecimalFormat df=new DecimalFormat("000");
System.out.println(Thread.currentThread().getName()+":"+df.format(a));
a++;
if(a>999){
System.exit(0);
}
}
}
}
public static class xc1 extends Thread{
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
xc.fun();
}
}
}
public static class xc2 implements Runnable{
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
xc.fun();
}
}
}
public static void main(String[] args) {
xc1 x1 = new xc1();
xc2 x2 = new xc2();
Thread t1=new Thread(x1);
t1.setName("t1");
Thread t2=new Thread(x2);
t2.setName("t2");
Thread t3=new Thread(x1);
t3.setName("t3");
Thread t4=new Thread(x2);
t4.setName("t4");
t1.start();
t2.start();
t3.start();
t4.start();
}
}
import java.text.DecimalFormat;
public class xiancheng {
/**
* @param Thread , Runnable
* >> 实现功能都一样,但Runnable是面向接口,扩展性比extends Thread 好;
* >> java是单继承,而接口可以实现多个;
*/
public static class xc{
public static long a=0;
public static Object obj=new Object();
public static void fun(){
synchronized (obj) {
DecimalFormat df=new DecimalFormat("000");
System.out.println(Thread.currentThread().getName()+":"+df.format(a));
a++;
if(a>999){
System.exit(0);
}
}
}
}
public static class xc1 extends Thread{
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
xc.fun();
}
}
}
public static class xc2 implements Runnable{
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
xc.fun();
}
}
}
public static void main(String[] args) {
xc1 x1 = new xc1();
xc2 x2 = new xc2();
Thread t1=new Thread(x1);
t1.setName("t1");
Thread t2=new Thread(x2);
t2.setName("t2");
Thread t3=new Thread(x1);
t3.setName("t3");
Thread t4=new Thread(x2);
t4.setName("t4");
t1.start();
t2.start();
t3.start();
t4.start();
}
}
相关文章推荐
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Java线程示例 - 继承Thread类和实现Runnable接口
- 调用CreateThread来实现多线程和继承线程类来实现多线程区别
- Java中继承Thread和实现Runnable这两种创建线程有何区别
- java中的线程-继承thread-实现runnable接口以及线程同步
- 线程实现方式-继承Thread类和实现Runnable接口的区别
- Java传统多线程的实现有两种方法,继承Thread类或者实现Runnable即可.线程启动时调用start()方法.
- java两种启动线程方法根本不同,Thread继承和实现Runable接口
- 线程--继承类实现了静态代理模式
- 线程:创建线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。代码如下:
- 通过继承Thread实现线程控制
- 一道小测试题,一个线程既实现了Runnable接口又继承Thread方法
- java中的通过继承Thread和实现Runnable接口实现的线程
- 线程创建和启动:继承Thread类和实现Runnable接口
- 线程继承和实现方式对比
- 细说继承Thread类和实现Runnable接口来创建线程的区别
- 创建线程的方式(继承和实现接口两种)
- Java 线程与进程的速度比较(继承Thread实现)
- Java中继承Thread和实现Runnable这两种创建线程有何区别