多執行緒程式包含兩個或多個可同時執行的部分,每個部分可以同時處理不同的任務,從而能更好地利用可用資源,特別是當您的計算機有多個cpu時。多執行緒使您能夠寫入多個活動,可以在同一程式中同時進行操作處理。
新執行緒(new) - 新執行緒在新的狀態下開始其生命週期。直到程式啟動執行緒為止,它保持在這種狀態。它也被稱為出生執行緒。
可執行(runnable) - 新誕生的執行緒啟動後,該執行緒可以執行。狀態的執行緒被認為正在執行其任務。
等待(waiting) - 有時,執行緒會轉換到等待狀態,而執行緒等待另乙個執行緒執行任務。 只有當另乙個執行緒發訊號通知等待執行緒才能繼續執行時,執行緒才轉回到可執行狀態。
定時等待(timed waiting) - 可執行的執行緒可以在指定的時間間隔內進入定時等待狀態。 當該時間間隔到期或發生等待的事件時,此狀態的執行緒將轉換回可執行狀態。
終止(dead) - 可執行執行緒在完成任務或以其他方式終止時進入終止狀態。
class runnabledemo implements runnable
public void run()
}catch (interruptedexception e)
system.out.println("thread " + threadname + " exiting.");
}public void start ()
}}public class testthread
}
執行的結果
creating thread-1
starting thread-1
creating thread-2
starting thread-2
running thread-1
thread: thread-1, 4
running thread-2
thread: thread-2, 4
thread: thread-1, 3
thread: thread-2, 3
thread: thread-1, 2
thread: thread-2, 2
thread: thread-1, 1
thread: thread-2, 1
thread thread-1 exiting.
thread thread-2 exiting.
Java併發程式設計教程
1 使用執行緒的經驗 設定名稱 響應中斷 使用threadlocal 2 executor executorservice和future 3 阻塞佇列 put和take offer和poll drainto 4 執行緒間的協調手段 lock condition wait notify notifya...
Java 教程(併發活性)
併發應用程式及時執行的能力被稱為其活性,本節描述了最常見的活性問題,死鎖,並繼續簡要描述其他兩個活性問題,飢餓和活鎖。死鎖描述了兩個或多個執行緒永遠被阻塞,等待彼此的情況,這是乙個例子。alphonse和gaston是朋友,是禮貌的忠實信徒,禮貌的乙個嚴格規則是,當你向朋友鞠躬時,你必須一直鞠躬,直...
JAVA併發程式設計
通過常量字串 string 來呼叫 wait 或 notify 方法所導致的問題是,jvm 編譯器會在內部自動將內容相同的 string 轉變為相同的物件。這意味著,即便你建立了兩個不同的 mywaitnotify 例項,他們內部的 mymonitorobject 變數也會指向相同的 string ...