目錄
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();
}
}
運作結果:
多線程舉例子:
我們先定義吃飯聽歌的類:
類都必須繼承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();
}
}