java并发之Thread和Runnable

java开发中不可避免用到多线程状况,好比web中常见的Servlet、Struts2都是运用到多线程,多线程的根本目的是为了更快的执行。其余经常使用到的多线程好比设计到大量I/O操做,用多线程可明显提高效率。
java中最基础的并发类就是Runnable.class,Runnable是一个接口,只要实现实现Runnables,重写方法run() 就能够实现多线程操做。java

举个实现Runnable的例子:web

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();
    }
  }
} ///:~
public static void main(String[] args) {
    Thread t1 = new Thread(new LiftOff());
    t1.start();
}

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

所以咱们通常使用多线程能够实现Runnable.class或者继承Thread.class.通常使用Runnable便可这样还能够继承其余类并发

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

相关文章
相关标签/搜索