intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Bài 9: Tiếp tục cải tiến chương trình đồ họa liệt kê các số nguyên tố

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PDF | Số trang:20

69
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Bài 9: Tiếp tục cải tiến chương trình đồ họa liệt kê các số nguyên tố sau đây được biên soạn nhằm trang bị cho các bạn những kiến thức về lập trình đa luồng trong ứng dụng đồ họa, sử dụng ProgressMonitor, sử dụng SwingWorker, sử dụng PropertyChangeListener.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Bài 9: Tiếp tục cải tiến chương trình đồ họa liệt kê các số nguyên tố

Bài 9: Tiếp tục cải tiến chương trình<br /> đồ họa liệt kê các số nguyên tố<br /> Lê Hồng Phương,<br /> Nguyễn Việt Hùng, Hà Mỹ Linh<br /> phuonglh@gmail.com<br /> Khoa Toán-Cơ-Tin học<br /> Trường Đại học Khoa học Tự nhiên Hà Nội<br /> <br /> Nội dung<br /> ●<br /> <br /> Tiếp tục cải tiến chương trình liệt kê các số nguyên<br /> tố trong bài giảng trước:<br /> –<br /> <br /> Lập trình đa luồng trong ứng dụng đồ họa:<br /> ●<br /> ●<br /> <br /> Luồng đồ họa<br /> Luồng công việc<br /> <br /> –<br /> <br /> Sử dụng ProgressMonitor<br /> <br /> –<br /> <br /> Sử dụng SwingWorker<br /> <br /> –<br /> <br /> Sử dụng PropertyChangeListener<br /> <br /> 2012-2013<br /> <br /> Object-Oriented Programming: Collections<br /> <br /> 2<br /> <br /> Nguyên tắc tách luồng<br /> ●<br /> <br /> Khi lập trình các ứng dụng có giao diện đồ họa, ta<br /> cần chú ý nguyên tắc tách luồng:<br /> –<br /> <br /> –<br /> <br /> ●<br /> <br /> Luồng đồ họa: vẽ, cập nhật các thành phần đồ<br /> họa, nhận các sự kiện bấm phím, kích chuột...<br /> Luồng công việc: sử dụng để chạy các tác vụ<br /> cần nhiều thời gian để thực hiện.<br /> <br /> Chú ý: luồng đồ họa còn được gọi là luồng phân phối<br /> sự kiện: Event Dispatch Thread – EDT. Mọi ứng<br /> dụng đồ họa đều chạy trong một luồng đồ họa.<br /> <br /> 2012-2013<br /> <br /> Object-Oriented Programming: Collections<br /> <br /> 3<br /> <br /> Nguyên tắc tách luồng<br /> ●<br /> <br /> ●<br /> <br /> ●<br /> <br /> Trong chương trình liệt kê số nguyên tố ở bài giảng<br /> trước, ta không tách luồng.<br /> Nếu người dùng nhập vào số n lớn cỡ hàng trăm triệu thì<br /> tác vụ liệt kê số nguyên tố sẽ mất nhiều thời gian.<br /> Trong thời gian chờ tính toán, giao diện đồ họa của<br /> chương trình không hoạt động:<br /> –<br /> <br /> Người dùng không thể chọn thực đơn hay thực hiện<br /> bất kì công việc nào khác trên giao diện.<br /> <br /> –<br /> <br /> Lí do: luồng đồ họa đang bận tính toán!<br /> <br /> 2012-2013<br /> <br /> Object-Oriented Programming: Collections<br /> <br /> 4<br /> <br /> Nguyên tắc tách luồng<br /> ●<br /> <br /> Ta cần cải tiến chương trình với cách giải quyết cơ bản:<br /> –<br /> <br /> –<br /> <br /> ●<br /> <br /> Viết một luồng công việc có nhiệm vụ liệt kê các số<br /> nguyên tố, chạy tách riêng khỏi luồng đồ họa.<br /> Khi nào luồng công việc thực hiện xong nhiệm vụ, trả<br /> về kết quả thì sẽ thực hiện cập nhật kết quả trên giao<br /> diện bằng luồng đồ họa.<br /> <br /> Trong thực tế, không nhất thiết phải chờ luồng công việc<br /> chạy xong, có kết quả toàn bộ mới thực hiện cập nhật đồ<br /> họa.<br /> –<br /> <br /> 2012-2013<br /> <br /> Cập nhật dần dần giao diện, sử dụng kết quả trung<br /> gian → Tăng tính tương tác của chương trình.<br /> Object-Oriented Programming: Collections<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2