Java中可以创建多线程,这在JavaScript
中是没有接触过的,创建方法主要有继承Thread类、实现Runnable接口、匿名类创建三种方式。最终调用都要使用Thread类的start方法开始。
进程(Processor)和线程(Thread)
进程就好像LOL.exe和DOTA.exe,而线程就是在线程中同时做的多种事。
继承Thread类创建
// CreateThread类继承Thread类
public class CreateThread extends Thread{
// 重写run方法
public String name;
public CreateThread(String a){
this.name = a;
}
public void run(){
int i=10;
while(i-->0){
System.out.println(this.name);
}
}
}
public class TestThread {
public static void main(String[] args){
CreateThread t1 = new CreateThread("这是线程1");
// 调用start方法开始线程
t1.start();
CreateThread t2 = new CreateThread("这是线程2");
t2.start();
}
}
results:
这是线程1
这是线程1
这是线程1
这是线程2
这是线程2
这是线程1
这是线程1…
可以看到并不是顺序执行的线程1中间夹杂着线程2
实现Runnable接口创建
public class CreateThread implements Runnable{
// 重写run方法
public String name;
public CreateThread(String a){
this.name = a;
}
// 因为事先Runnable接口所以必须事先run方法
public void run(){
int i=10;
while(i-->0){
System.out.println(this.name);
}
}
}
public class TestThread {
public static void main(String[] args){
CreateThread t1 = new CreateThread("这是线程1");
// 必须借用Thread类调用start方法
new Thread(t1).start();
CreateThread t2 = new CreateThread("这是线程2");
new Thread(t2).start();
}
}
使用匿名类方法直接在run方法中写业务
使用匿名类可以很方便的直接创建
public class TestThread {
public int age;
public static void main(String[] args){
Thread t1 = new Thread(){
public void run(){
int i =10;
while(i-->0){
System.out.println("这是线程1");
}
}
};
t1.start();
Thread t2 = new Thread(){
public void run(){
int i =10;
while(i-->0){
System.out.println("这是线程2");
}
}
};
t2.start();
}
}
这是学习java的第一篇笔记文章,也是新个人网站开始后的第一篇文章,加油ヾ(◍°∇°◍)ノ゙