关于线程!反正我觉得每次面试的时候都基本会或多或少的问道!
对于线程的复习,我会以面试为主,同时加一些个人理解!
首先对于线程概念的话,就不解释了。就从线程的实现开始吧。毕竟这也是经常会被问起的。
面试题?线程的实现有两种方法 1.继承 Thread类 2.实现Runable接口 notice:继承,实现
面试题?启动线程是run()还是start()?启动一个线程调用start方法
然后我们开始用代码实现线程,然后试着启动线程吧!
//继承Thread类
public class TestThread extends Thread{
private String name;
public TestThread(String string) {
// TODO Auto-generated constructor stub
this.name = name;
}
public void run(){
for(int i = 0 ; i <5 ; i++){
System.out.println(name+""+i);
}
}
public static void main(String[] args){
TestThread t1 = new TestThread("王武");
TestThread t2 = new TestThread("增删");
//注意 run start的区别
t1.start();
t2.run();
}
}
//实现Runnable
public class TestThread1 implements Runnable {
public TestThread1() {
}
public TestThread1(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) {
TestThread1 h1=new TestThread1("线程A");
Thread demo= new Thread(h1);
TestThread1 h2=new TestThread1("线程B");
Thread demo1=new Thread(h2);
demo.start();
demo1.start();
}
private String name;
}
Thread 和Runnable的区别
Thread不适合资源共享,Runnable则比较合适