java多线程(1)Thread和Runnable

来源:互联网 发布:矿用道夹板数据 编辑:程序博客网 时间:2024/05/29 13:56
在java开发中不可避免用到多线程情况,比如web中常见的Servlet、Struts2都是运用到多线程,多线程的根本目的是为了更快的执行。其他常用到的多线程比如设计到大量I/O操作,用多线程可明显提升效率。java中最基础的并发类就是Runnable.class,Runnable是一个接口,只要实现实现Runnables,重写方法run() 就可以实现多线程操作。

举个实现Runnable的例子:

public class LiftOff implements Runnable {  protected int countDown = 10; // Default  private static int taskCount = 0;  private final int id = taskCount++;  public LiftOff() {}  public LiftOff(int countDown) {    this.countDown = countDown;  }  public String status() {    return "#" + id + "(" +      (countDown > 0 ? countDown : "Liftoff!") + "), ";  }  public void run() {    while(countDown-- > 0) {      System.out.print(status());      Thread.yield();    }  }} ///:~

从这个例子中,可以看出在java中多线程的实现多线程是很简单的事,但是多线程的学习是易懂难通,会遇见死锁、逻辑混乱等各类问题,所以使用多线程必须慎之又慎。
Runnable之后有一个基础的并发类就是Thread.class,Thread就是实现了Runnable的一个类,但是在Runnable的基础上新增了一些方法包括:线程优先级、后台线程、分组、命名等,还是非常实用的。
举个Thread例子:

 public static void main(String[] args) {    Thread t1 = new Thread(new LiftOff());    t1.start();}

因此我们一般使用多线程可以实现Runnable.class或者继承Thread.class。一般采用继承Runnable即可,这样还可以继承其他的类

好了本次文章就到这来,简单地说明了java多线程的一些知识,下次会关于多线程方法更深入的阐述。

1 0
原创粉丝点击