开发一些大型的分布式项目时,多线程的使用必不可少的,今天我们看一下,常见的几种多线程创建方法。
为什么要用多线程:使用多线程可以提高程序的执行效率
什么是线程:线程是进程中的一条执行路径。
什么是进程:进程是某一应用的线程集合。
注意:开启线程的是start方法而不是run方法
1.继承Thread类重写run 方法:
pubilc class ThreadTest extends Thread{
@Override
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println("子线程i:" + i+currentThread().getName());
}
}
public static void main(String[] args) {
ThreadTest t= new ThreadTest ();
t.start();
for (int z = 0; z < 30; z++) {
System.out.println("主线程:" + z+currentThread().getName());
}
}
运行结果:可以看出开启多线程以后主线程和子线程是交替执行的。
2.实现Runnable接口,重写run 方法
public class RunnableTest implements Runnable{
@Override
public void run() {
for (int i = 0; i< 10; i++) {
System.out.println("子线程i:" + i);
}
}
public static void main(String[] args){
RunnableTest runnableTest =new RunnableTest ();
// 因为RunnableTest 实现的Runnable接口,所以没有start方法
Thread thread= new Thread(runnableTest );
thread.start();
for (int z = 0; z< 10; z++) {
System.out.println("主线程:" +z);
}
}
}
运行结果:也是主线程和子线程交替执行。
3.使用匿名内部类方式
public class CreateThread {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("子线程" + i);
}
}
});
thread.start();
for (int i=0 ;i<20;i++){
System.out.println("主线程"+i);
}
}
4.线程池(待更新)