Java多线程的用法

关于Thread多线程一直没太接触过,今天学了一些,分享一下~

在Java中要想实现多线程,有两种手段,一种是继承Thread类,另外一种是实现Runable接口。

对于直接继承Thread类来说,代码大致框架是:

class 类名 extends Thread{ 
方法1; 
方法2; 
… 
public void run(){ 
// other code… 
} 
属性1; 
属性2; 
… 
  
}

下面通过一个简单小例子帮助理解~

时钟每隔1s输出一次:

import java.util.Date;


public class ClockThreadTest {

	public static void main(String[] args) {
                  ClockThread clockThread=new ClockThread();
                  clockThread.start();
                  System.out.println("End");
	}
}
class ClockThread extends Thread{
	@Override
	public void run() {
		super.run();
		while(true){
			System.out.println(new Date());
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			 
	     }
	}
}

输出结果显示:

....

无尽的往下输出....

注意:虽然我们在这里调用的是start()方法,但是实际上调用的还是run()方法的主体。

那么:为什么我们不能直接调用run()方法呢?

我的理解是:线程的运行需要本地操作系统的支持。

但是这种方法有它的弊端,拿本例子来说,ClockThread如果有其他的父类,那么此种方法就不能用。因为Java中不允许同时拥有几个父类。所以,实现多线程一般用第二种方法。下面介绍下一种方法:

通过实现Runnable接口,大致框架是:

class 类名 implements Runnable{ 
方法1; 
方法2; 
… 
public void run(){ 
// other code… 
} 
属性1; 
属性2; 
… 
  
}

详细地介绍这种方法打算结合Android中Handler的用法~打算整合到下篇日志中...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值