Java多线程编程之Runnable、Thread简介

    在Java多线程编程中,常会遇到Runnable,Thread,Handler,这些对象往往让人感到困惑,现简单梳理下Java多线程编程的要点以及它们使用的区别。

一、描述任务的方式,Runnable接口

    并发编程将程序分为多个任务,通过使用多线程机制来执行每个独立任务(子任务)。下面写个简单的程序说明Runnable使用的特点。

LiftOff.java

package com.bing.test;

public class LiftOff implements Runnable{


	protected int countDown = 10;
	private static int taskCount = 0;
	private final int id = taskCount++;
	
	public LiftOff(){}
	
	public LiftOff(int countDowm) {
		this.countDown = countDowm;
	}
	
	public String status(){
		return "#" + id + "(" + (countDown > 0 ? countDown : "liftOff!") + "). ";
	}
	
	@Override
	public void run() {
		while(countDown-- >0){
			System.out.println(status());
			Thread.yield();
		}
	}

}
main直接调用LiftOff

public static void main(String[] args) {
		
		LiftOff launch = new LiftOff();
		launch.run();
		
	}
输出如下:

#0(9). 
#0(8). 
#0(7). 
#0(6). 
#0(5). 
#0(4). 
#0(3). 
#0(2). 
#0(1). 
#0(liftOff!). 
    当然,该示例只是执行了一个任务。而要实现线程行为,必须将一个任务附着到线程上。

二、多线程实现,Thread类

    通过Thread构造器的start()方法,可以将Runnable对象对应的任务添加到新线程上。

public static void main(String[] args) {
		
		Thread t = new Thread(new LiftOff());
		t.start();
		System.out.println("wait for liftoff.");
	}
输出如下:

wait for liftoff.
#0(9). 
......
#0(1). 
#0(liftOff!). 

    该过程分为两步:

1、Thread构造器实例化一个Runnable对象(LiftOff),并调用start()方法启动线程,执行初始化操作;

2、在新的线程中(即LiftOff任务)run()方法被调用,执行新任务。

    这便是Java多线程编程的简单逻辑,有了这个基础,理解复杂的东西会容易多了!


参考自《think in Java》



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值