以前没有写笔记的习惯,现在慢慢的发现及时总结是多么的重要了,呵呵。
这一篇文章主要关于java多线程,自己网上找了一些资料在这里做成笔记。
同时也算是我以后复习的资料吧,呵呵,以后请大家多多指教。
Java多线程
在Java中,多线程有两种实现方法,一种是继承Thread类或者实现Runnable接口。
对于直接继承Thread类来说,代码大致如下:
class 类名 extends Thread{
public void run(){
//方法体
}
}
/**
* 继承Thread类,直接调用run方法
**/
class hello extends Thread{
public hello(){
}
private String name;
public hello(String name){
this.name=name;
}
public void run(){
for(int i=0;i<5;i++){
System.out.println(name+"运行"+i);
}
}
public static void main(String[] args){
hello h1=new hello("A");
hello h2=new hello("B");
h1.run();
h2.run()
}
}
【运行结果】:
A运行 0
A运行 1
A运行 2
A运行 3
A运行 4
B运行 0
B运行 1
B运行 2
B运行 3
B运行 4
我们会发现这些都是顺序执行的,说明我们调用的方法不对,应该调用start()
把上面的main方法改为:
public static void main(String[] args){
hello h1=new hello("A");
hello h2=new hello("B");
h1.start();
h2.start();
}
然后运行你就会发现它的输出结果基本每次都是不一样的。
注意:虽然这里调用了start()方法,但是实际上调用的还是run()方法的主体。
并且start方法重复调用会报异常。
下面通过实现Runnable接口:
class 类名 implements Runnable{
public void run(){
//方法体
}
}
实现Runnable接口小例子: