2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址:https://cloud.tencent.com/act/cps/redirect?redirect=1062
2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址:https://www.aliyun.com/minisite/goods
相关推荐:Java多线程--Runnable和Thread - 博客频道 - CSDN.NET
概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和Runnable。 之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解。本章内容包
在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类
相关推荐:java多线程----Runnable和Thread实现多线程的区别(含代码)
转自:http://blog.csdn.net/ns_code/article/details/17161237 Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势: 1、可以避免由
通过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》