1. 程式人生 > >java 執行緒基本知識(一)

java 執行緒基本知識(一)

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之前,是因為執行執行緒的順序並非是有序的。執行緒是並行執行而非順序的。