多线程:同时做多个事情
java多线程的开起来方式插值主要游戏两种:
1)集成Thread类,重写run方法
2)调用Runnable接口,重新run方法
总之,将要计划执行的任务放在run方法中执行,即用新开启的线程执行任务。
首先,利用Runnable接口开启新线程:
public class myThreads implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
//显示十次两个线程的运行先后情况
for(int i=0;i<10;i++){
String ThreadName=Thread.currentThread().getName();
System.out.println(ThreadName+"is runing");
}
}
public static void main(String[] args){
myThreads mt=new myThreads();
//建立两个线程
Thread t1=new Thread(mt);
Thread t2=new Thread(mt);
//设置线程名字
t1.setName("t1 Thread");
t2.setName("t2 Thread");
//使线程处于可执行状态
t1.start();
t2.start();
System.out.println("main thread");
}
}
其次,直接继承Thread类开启线程:
public class th extends Thread{
public static void main(String[] args){
th t=new th();
t.start();
for(int i=0;i<1000;i++){
System.out.println("main thread");
}
}
public void run(){
for(int i=0;i<1000;i++){
System.out.println("thread");
}
}
}
补充:sleep():使线程睡眠一会儿,让其他线程先执行,之后再执行这个线程,用的时候要try catch.
try{
t.sleep(200);
}catch(InterruptedExveption ex){
ex.printStackTrace();
}
还有,通过匿名类实现多线程:
匿名类写起来非常方便。不用再去新建一个类,因此写程序时非常好用。
public class threads {
public static void main(String[] args){
new Thread(){//直接继承Thread
public void run(){
for(int i=1;i<100;i++){
System.out.println("thread threads");
}
}
}.start();
new Thread(new Runnable(){//调用Runnable接口
public void run(){
for(int i=1;i<100;i++){
System.out.println("runnble threads");
}
}
}).start();
}
}
并行:同时做多件事,多核cpu提供硬件支持。
并发:不停的切换执行多件事,看起来像是同时在做多件事。