Danh mục

CoreJava 8 - ĐA LUỒNG (Multithreading)

Số trang: 25      Loại file: doc      Dung lượng: 4.00 KB      Lượt xem: 15      Lượt tải: 0    
Hoai.2512

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu corejava 8 - đa luồng (multithreading), công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
CoreJava 8 - ĐA LUỒNG (Multithreading)Chương8 ĐALUỒNG(Multithreading)Mụctiêu: Saukhikếtthúcchươngnày,bạncóthể: Địnhnghĩamộtluồng(thread) Môtảđaluồng Tạovàquảnlýluồng Hiểuđượcvòngđờicủaluồng Môtảmộtluồnghiểm(daemonthread) Giảithíchthiếtlậpcácluồngưutiênnhưthếnào Giảithíchđượcsựcầnthiếtcủasựđồngbộ Hiểu được cách áp dụng vào các từ khoá đồng bộ như thế nào (how to apply synchronizedkeywords) Liệtkênhữngđiểmyếucủasựđồngbộ Giảithíchvaitròcủacácphươngthứcwait()(đợi),notify()(thôngbáo)vànotifyAll(). Môtảmộtđiềukiệnbếtắc(deadlockcondition) 8.1 Giớithiệu Mộtluồnglà mộtthuộctínhduynhấtcủaJava.Nó là đơnvị nhỏ nhấtcủa đoạnmã có thể thi hành đượcmà thựchiệnmộtcôngviệcriêngbiệt.Ngônngữ Javavà máy ảoJavacả hailà cáchệ thốngđươcphânluồng 8.2 Đaluồng Javahổtrợ đaluồng,màcókhảnănglàmviệcvớinhiềuluồng.Mộtứngdụngcóthểbaohàm nhiềuluồng.Mỗiluồngđượcđăngkýmộtcôngviệcriêngbiệt,màchúngđượcthựcthiđồngthờivớicácluồngkhác. Đaluồnggiữ thờigiannhànrỗicủahệ thốngthànhnhỏ nhất. Điềunàychophépbạnviếtcác chươngtrìnhcó hiệuquảcaovớisự tậndụngCPUlàtối đa.Mỗiphầncủachươngtrình đượcgọimột luồng,mỗiluồng địnhnghĩamột đườngdẫnkhácnhaucủasự thựchiện. Đâylà mộtthiếtkế chuyên dùngcủasựđanhiệm. Trongsựđanhiệm,nhiềuchươngchươngtrìnhchạyđồngthời,mỗichươngtrìnhcóítnhấtmột luồngtrongnó.Mộtvixửlýthựcthitấtcảcácchươngtrình.Chodùnócóthểxuấthiệnmàcácchương trìnhđãđượcthựcthiđồngthời,trênthựctếbộvixửlýnhảyqualạigiữacáctiếntrình. 8.3 Tạovàquảnlýluồng KhicácchươngtrìnhJava đượcthựcthi,luồngchínhluônluôn đang đượcthựchiện. Đâylà 2 Đa luồng (Multithreading) 15nguyênnhânquantrọngđốivớiluồngchính: Cácluồngconsẽđượctạoratừnó. Nólàluồngcuốicùngkếtthúcviệcthựchiện.Trongchốclátluồngchínhngừngthực thi,chươngtrìnhbịchấmdứt. Chodùluồngchínhđượctạoramộtcáchtựđộngvớichươngtrìnhthựcthi,nócóthểđượcđiềukhiểnthôngquamộtluồngđốitượng. Cácluồngcóthểđượctạoratừhaiconđường: Trìnhbàylớpnhư là mộtlớpconcủalớpluồng,nơimà phươngthứcrun()củalớpluồngcần đượcghiđè.Lấyvídụ: ClassMydemoextendsThread { //Classdefinition publicvoidrun() { //thựcthi } } TrìnhbàymộtlớpmàlớpnàythựchiệnlớpRunnable.Rồithìđịnhnghĩaphươngthứcrun(). ClassMydemoimplementsRunnable { //Classdefinition publicvoidrun() { //thựcthi } } Chươngtrình8.1sẽchỉrasựđiềukhiểnluồngchínhnhưthếnào Chươngtrình8.1 importjava.io.*; publicclassMythreadextendsThread{ /** *Mythreadconstructorcomment. */ publicstaticvoidmain(Stringargs[]){ Threadt=Thread.currentThread(); System.out.println(ThecurrentThreadis:+t); t.setName(MyJavaThread); System.out.println(Thethreadisnownamed:+t); try{16 Core Java for(inti=0;i Cấutrúcmộtluồngvớitênlà“threadname” publicThread() Cấutrúcmộtluồngvớitên“Thread, đượcràngbuộcvớimộtsố;lấyví dụ,Thread1,Thread2,v.v… Chươngtrìnhbắt đầuthựcthiluồngvớiviệcgọiphươngthứcstart(),mà phươngthứcnàyphụ thuộcvàolớpluồng.Phươngthứcnày,lầnlượt,việndẫnphươngthứcrun(),nơimàphươngthức định nghĩatácvụđượcthựcthi.Phươngthứcnàycóthểviếtđèlênlớpconcủalớpluồng,hoặcvớimột đối tượngRunnable. 8.4 VòngđờicủaLuồngkhimộtHình8.3Vòngđờicủaluồng 8.5 Phạmvicủaluồngvàcácphươngthứccủalớpluồng Mộtluồngđãđượctạomớigầnđâylàtrongphạmvi“sinh”.Luồngkhôngbắtđầuchạynga ...

Tài liệu được xem nhiều: