java开启多线程的两种方式以及通过匿名类实现方式

多线程:同时做多个事情
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提供硬件支持。
并发:不停的切换执行多件事,看起来像是同时在做多件事。

你可能感兴趣的:(java)