
Ch ng 12 – ươ Đa ti n trình - Multithreadingế
Outline
12.1 Gi i thi uớ ệ
12.2 Các tr ng thái c a m t ti n trìnhạ ủ ộ ế
12.3 Các m c u tiên c a ti n trình ứ ư ủ ế
12.4 Đ ng b ti n trình và l p đi u khi nồ ộ ế ớ ề ể
12.5 T o/ dùng ti n trình không đ ng b hoáạ ế ồ ộ
12.6 T o/dùng ti n trình có đ ng b hoáạ ế ồ ộ
12.7 Các thao tác v i các ti n trình. Ví d ớ ế ụ

12.1 Gi i thi uớ ệ
H u h t các ngôn ng l p trình ch cho phép ch y m t câu l nh m t ầ ế ữ ậ ỉ ạ ộ ệ ộ
lúc
Vi c ch y câu l nh truy n th ng cũng đ ng th i đ c th c hi n ệ ạ ệ ề ố ồ ờ ượ ự ệ
dùng h đi u hành g c ệ ề ố
.NET Framework Class Library h tr c ch đa ti n trình ỗ ợ ơ ế ế
Đa ti n trình (Multithreading) : ch y đ ng th i các ti n trình ế ạ ồ ờ ế
Ti n trình (thread ): m t ph n c a ch ng trình có th ch y ế ộ ầ ủ ươ ể ạ
đ cượ

12.2 Các tr ng thái c a m t ti n trìnhạ ủ ộ ế
M t ti n trình có th có nhi u tr ng thái khác nhau trong chu kỳ s ng ộ ế ể ề ạ ố
c a nó (t lúc đ c t o ra cho đ n khi k t thúc và b phá hu ) . ủ ừ ượ ạ ế ế ị ỷ
Unstarted (ch a b t đ u)ư ắ ầ
Khi m t ti n trình b t đ u chu kỳ s ngộ ế ắ ầ ố
T n t i cho t i khi ph ng th c ồ ạ ớ ươ ứ Start đ c g iượ ọ
Started (b t đ u):ắ ầ
T n t i tr ng thái này cho t i khi b x lý b t đ u ch y nó ồ ạ ở ạ ớ ộ ử ắ ầ ạ

12.2 Các tr ng thái c a m t ti n trìnhạ ủ ộ ế
Running (đang ch y ):ạ
Ti n trình nào có m c u tiên cao nh t thì đ c ch y tr c ế ứ ư ấ ượ ạ ướ
B t đ u ch y khi b x lý đ c c p phát cho ti n trình ắ ầ ạ ộ ử ượ ấ ế
ThreadStart là u quy n đ c bi t cho các ho t đ ng c a ỷ ề ặ ệ ạ ộ ủ
ti n trình ế
Stopped (ng ng):ừ
Khi k t thúc u quy nế ỷ ề
N u ch ng trình g i ph ng th c ế ươ ọ ươ ứ Abortcaủ Thread
Blocked :
Blocked khi có yêu c u vào/ra ầ
K t thúc blocked khi h đi u hành đã hoàn thành quá trình ế ệ ề
vào/ra

WaitSleepJoin:
Có 3 cách r i vào tr ng thái này:ơ ạ
Ti n trình g i ph ng th c ế ọ ươ ứ Wait c a ủMonitor vì nó b t ắ
g p code mà nó ch a th th c hi nặ ư ể ự ệ
K t thúc tr ng thái khi m t ti n trình khác g i ế ạ ộ ế ọ Pulse
G i ph ng th c ọ ươ ứ Sleep đ t m d ng trong m t kho ng ể ạ ừ ộ ả
th i gian nh t đ nh ờ ấ ị
Hai ti n trình đ c h p nh t n u m t không th th c hi n ế ượ ợ ấ ế ộ ể ự ệ
cho t i khi ti n trình kia k t thúc ớ ế ế
Các ti n trình ch hay t m d ng có th thoát kh i các tr ng ế ờ ạ ừ ể ỏ ạ
thái này n u g i ph ng th c ế ọ ươ ứ Interrupt
Suspended (treo):
Tr ng thái này x y ra khi g i ph ng th c ạ ả ọ ươ ứ Suspend
Tr v tr ng thái Started khi g i ph ng th c ở ề ạ ọ ươ ứ Resume
12.2 Các tr ng thái c a m t ti n trìnhạ ủ ộ ế

