本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/134231,如需转载请自行联系原作者有人说java有一个硬伤,那就是速度永远比不上c/c++,这一点不得不承认,但最为一个如今最优秀的全能型语言(c++或者其他语言的粉丝不要乱扔砖头)定有其出奇制胜的地方。今天要说的线程便是其中的一大法宝。有了这一法宝,java处理问题的效率并不比c++差,注意我说的是效率,而非速度。且听我细细分说。
我开始学的是c/c++,但是在我遇到java那一天,不可救药的爱上了她,至今还是认为自己的选择对的。
什么叫线程呢?打个比方吧,但线程就好比接力赛,跑完一棒,下一棒接着跑,直到跑完全程。而多线程呢,就像大家一起跑出去,我走我的阳关道,你走你的独木 桥,互不干扰,一起完成任务。那线程和进程又是什么关系呢?一个进程就是一条跑道,而上面跑的运动员就好比线程。两者有些相似。但是使用了多线程,那么在 一个进程内可以运行多个任务。我在学c/c++的时候却根本没有看到类似于java的线程这样的功能,可能可以实现,但不会有java这么方便。
这有点像cpu的发展,以前追求的是速度,现在呢,在追求速度的意义不太大了,而在于效率。Intel出了双核后,据说还要出4核cpu。
下面来介绍一下怎么用线程吧。想来看一个最简单的例子:
class SingleThread{
public static void main(String[] args){
Thread thread = Thread.currentThread();
System.out.println(“目前正在运行的线程是:”+thread.getName());
}
}
结果是:
目前正在运行的线程是:main
不信?你可以自己试一试。这是最简单的获取当前线程的例子,那么如何构建线程呢?
有一点一定要记住,一个类一个线程,有两种方法,1.继承Thread,2.实现Runnable接口,一次说不了那么多,而且两者功能差不多。Thread好用,就说第一种了。
创建线程类的模式:
class Xthread extends Thread{
//构造方法
public Xthread(){
//…….........
}
//重写run()方法,线程启动的时候云县的就是这个方法
public void run(){
//………….
}
}
是不是很简单,呵呵!其实就是这么简单。只要把你的程序往里加就是了。(明述java中线程(thread)的使用2)