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();
}
}
} ///:~
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多线程的一些知识,下次会关于多线程方法更深入的阐述。