Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 9 : Lập trình song song bằng VC#
Slide 1
9.0 Dẫn nhập
9.1 Tổng quát về lập trình song song
9.2 Lập trình multi-process bằng class Process
9.3 Lập trình multi-thread bằng class Thread
9.4 Demo tính hiệu quả của multi-thread
9.5 Demo vấn ₫ề tương tranh giữa các thread ₫ồng thời
9.6 Demo việc giải quyết tương tranh giữa các thread
9.7 Kết chương
Chương 9
Lập trình song song bằng C#
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 9 : Lập trình song song bằng VC#
Slide 2
9.0 Dẫn nhập
Chương này giới thiệu các ₫ối tượng phục vụ ghi/₫ọc dữ liệu
ra/vào file cùng các tác vụ ghi/₫ọc dữ liệu cổ ₫iển ra/vào file.
Chương này cũng giới thiệu các ₫ối tượng phục vụ ghi/₫ọc hệ
thống ₫ối tượng ra/vào file cùng các tác vụ ghi/₫ọc hệ thống ₫ối
tượng mối quan hệ tham khảo phức tạp ra/vào file.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 9 : Lập trình song song bằng VC#
Slide 3
9.1 Tổng quát về lập trình song song
Thường ₫ể giải quyết bài toán nào ₫ó, ta thường dùng giải thuật
tuần tự nhờ tính dễ hiểu, dễ kiểm soát của nó. Chương trình dùng
thuật giải tuần tự khi chạy trở thành process mono-thread hay
process tuần tự.
Process tuần tự hoạt ₫ộng không hiệu quả không lợi dụng triệt
₫ể ₫ược các CPU xử trên máy tính vật lý. Lưu ý rằng hiện nay các
máy PC, smartphone hay tablet ₫ều dùng CPU ₫a nhân. Thí dụ
galaxy S4 thị trường Việt Nam 8 nhân.
Để máy giải quyết bài toán hiệu quả hơn, ta nên dùng thuật toán
song song bằng cách nhận dạng các hoạt ₫ộng thể thực hiện
₫ồng thời rồi nhờ nhiều CPU thực hiện chúng ₫ồng thời.
Một trong các phương pháp hiện thực thuật toán song song lập
trình multi-process multi-thread.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 9 : Lập trình song song bằng VC#
Slide 4
9.2 Lập trình multi-process bằng class Process
Môi trường .Net cung cấp class tên Process ₫ể giúp ta lập trình
multi-process dễ dàng.
Class Process thuộc namespace System.Diagnostics, chứa các
thuộc tính tác vụ giúp ta quản process dễ dàng, thuận lợi.
Thí dụ thuộc tính StartInfo 1 ₫ối tượng gồm nhiều thuộc tính xác
₫ịnh thông tin ₫ể kích hoạt ứng dụng xác ₫ịnh :
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = txtPath.Text;
myProcess.StartInfo.CreateNoWindow = true;
….
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 9 : Lập trình song song bằng VC#
Slide 5
9.2 Lập trình multi-process bằng class Process
Sau khi thiết lập ₫ầy ₫ủ các thông tin ₫ể khởi tạo process, ta thể
gọi tác vụ Start ₫ể kích hoạt chạy :
myProcess.Start();
Sau khi ₫ược kích hoạt, process sẽ chạy song hành ₫ộc lập với
process kích hoạt cho ₫ến khi kết thúc theo thuật giải của nó.
Tuy nhiên, từ bên ngoài ta thể giết process nhờ tác vụ Kill :
myProcess.Kill();