前言
線程是一個(gè)程序內(nèi)部的順序控制流。cpu實(shí)際上在一個(gè)時(shí)間點(diǎn)上,只執(zhí)行一個(gè)。只不過我們把cup分成了多個(gè)時(shí)間片,由于速度很快,我們看起來像是多個(gè)線程。就像你的時(shí)間分成幾片,這樣整體看來做事情有規(guī)律,效率就會高,何況是cup呢。
線程的創(chuàng)建和啟動:
(1)定義Thread
類的子類,并重寫了該類的run()
方法,該run()
方法的方法就代表了線程需要完成的任務(wù)。因此把run()
方法稱為線程執(zhí)行體
(2)創(chuàng)建Thread
子類的實(shí)例,即創(chuàng)建了線程對象
(3)調(diào)用線程對象的start()
方法來啟動該線程
源代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// 通過繼承Thread類來創(chuàng)建線程類 public class FirstThread extends Thread { private int i; //重寫run()方法,run()方法的方法體是線程執(zhí)行體 public void run() { for (;i< 100 ;i++) { //當(dāng)線程類繼承Thread類時(shí),直接使用this即可獲取當(dāng)前數(shù)據(jù) //Thread對象的getName()返回當(dāng)前線程的名字 //因此可以直接調(diào)用getName()方法返回當(dāng)前線程的名字 System.out.println(getName()+””+i); } } public static void main(String[] args) { for ( int i= 0 ;i< 100 ;i++) { //調(diào)用Thread的currentThread()方法獲取當(dāng)前線程 System.out.println(Thread.currentThread().getName() +””+i); if (i== 20 ) { //創(chuàng)建并啟動第一個(gè)線程 new FirstThread().start(); //創(chuàng)建并啟動第二個(gè)線程 new FirstThread().start(); } } } } |
運(yùn)行界面:
總結(jié)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)和工作有所幫助。如果有疑問可以留言討論。