天天看點

Java多線程——多線程的引入

目錄

1.多線程定義

2.多線程應用 

​​​​​​​

定義:同時對多項任務加以控制;

多線程,顧名思義,就是可以多件事情一起幹;

比方說,一邊聽歌,一邊吃飯,這就是多線程;先聽歌後吃飯或者先吃飯後聽歌,這就是單線程;

程式裡同時執行多個任務并且加以控制,這個是java多線程的含義。

同時幹多個事,能充分利用cpu 記憶體等硬體裝置,提高程式運作效率。

單線程舉例子:
package com.java.test;

public class demo01 {

	private static void eat(){
		for (int i = 0; i < 5; i++) {
			System.out.println("吃飯");
		}
	}
	
	private static void music(){
		for (int i = 0; i < 5; i++) {
			System.out.println("聽歌");
		}
	}
	
	public static void main(String[] args) {
		eat();
		music();
	}
}
           

運作結果:

Java多線程——多線程的引入
多線程舉例子:

我們先定義吃飯聽歌的類:

類都必須繼承Thread這個類,然後重寫裡面的run方法就可以了。

還可以用Thread來設定線程執行的頻率。

package com.java.test;

public class Music extends Thread{

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			try {
				//設定1s執行線程一次
				Thread.sleep(1000);
				System.out.println("聽歌");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
           
package com.java.test;

public class Eat extends Thread{

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			try {
				//設定1s執行線程一次
				Thread.sleep(1000);
				System.out.println("吃飯啊啊");
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	
}
           

 測試類:

這裡建立線程和建立對象差不多;

啟動線程用start()方法;

package com.java.test;

public class Test {

	public static void main(String[] args) {
		//聽音樂線程
		Music musicThread=new Music();
		//吃飯線程
		Eat eatThread=new Eat();
		
		//啟動線程
		musicThread.start();
		eatThread.start();
	}
}