java 執行緒基本知識(一)
阿新 • • 發佈:2018-12-26
import java.lang.Thread;
1.建立執行緒 Thread th=new Thread();
ps: Thread th=new Thread() {
public void run() {
System.out.println("run方法");
}
};
Thread th=new Thread(new Runnable());
2.啟動執行緒:th.start();
注意:不是呼叫run方法。run方法並非是由剛建立的新執行緒所執行的,而是被建立新執行緒的當前執行緒所執行的。也就是被執行建立程式碼的執行緒所執行的。想要讓建立的新執行緒執行run方法,必須呼叫新執行緒的start()。
執行緒名
它有助於我們區分不同的執行緒。
public class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println("myrunnable run()");
}
}
MyRunnable myrunnable=new MyRunnable();
Thread th=new Thread(myrunnable,"New Threads") ;
th.start();
System.out.println(th.getName());
Runnable並非Thread的子類,所以沒有getName()方法。可以通過以下方法獲取當前執行緒的引用:
Thread.currentThread();
獲取Runnable執行緒名:
String name=Thread.currentThread().getName();
舉例
首先獲取當前執行緒的名字。然後開啟10個新執行緒,輸出相應執行緒的內容。
public static void main(String[] args) { System.out.println(Thread.currentThread().getName()); for(int i=1;i<10;i++) { new Thread(""+i) { public void run() { System.out.println("Thread "+getName()+"running"); } }.start(); } }
執行結果如下:
main
Thread 1running
Thread 2running
Thread 3running
Thread 4running
Thread 5running
Thread 6running
Thread 9running
Thread 7running
Thread 8running
這裡執行緒9出現在了7和8之前,是因為執行執行緒的順序並非是有序的。執行緒是並行執行而非順序的。