Sử du ̣ng tiờ́n trình( Threads)

Một phần của tài liệu Giáo trình java gửi với Swing phần 1 (Trang 26 - 27)

Sử du ̣ng tiờ́n trình là mụ ̣t cụng viờ ̣c khó khăn. Do đó nờ́u có thờ̉ được thì ba ̣n nờn tránh phõ̀n này. Tuy nhiờn Thread có thờ̉ giúp cải tiờ́n chương trình của ba ̣n bằng cách quản lý sự thực thi.

Nguyờn tắc đõ̀u tiờn khi sử du ̣ng threads là: tránh dùng chúng nờ́u như có thờ̉. Threads có thờ̉ rṍt khó sử du ̣ng và chúng có thờ̉ gõy khó khăn khi chúng ta debug chương trình. Đờ̉ tránh trường hợp bi ̣ đình trờ ̣ của chương trình, cõ̀n phải quan tõm ngay từ đõ̀u rằng mụ̃i tiờ́n trình được ta ̣o ra khụng kờu go ̣i thực thi bṍt kỳ mụ ̣t thành phõ̀n Swing nào.

Mă ̣c dù nguy hiờ̉m, nhưng threads rṍt cso giá tri ̣ khi ta sử du ̣ng chúng mụ ̣t cách cõ̉n thõ ̣n. Ta có thờ̉ cải thiờ ̣n viờ ̣c thực hiờ ̣n chương trình. Đụi khi, mụ ̣t vài tiờ́n trình làm đơn giản mã hoă ̣c cṍu trúc của mụ ̣t chương trình. Sau đõy là mụ ̣t vài tình huụ́ng khi sử du ̣ng tiờ́n trình:

• To move a time-consuming initialization task out of the main thread, so that the GUI comes up faster. Examples of time-consuming tasks include making extensive calculations and blocking for network or disk I/O (loading images, for example).

• To move a time-consuming task out of the event-dispatching thread, so that the GUI remains responsive.

• To perform an operation repeatedly, usually with some predetermined period of time between operations.

• To wait for messages from other programs.

Nờ́u ta ̣o mụ ̣t thread, cõ̀n phải tránh những nguy hiờ̉m khi thực thi mụ ̣t tiờ́n trình với các lớp tiờ ̣n ích như SwingWorker hay Timer. Đụ́i tượng SwingWorker ta ̣o mụ ̣t thread đờ̉ thực thi mụ ̣t qui trình xữ lý vờ̀ thời gian. Sau khi qui trình hoàn thành, SwingWorker cung cṍp mụ ̣t vài tùy cho ̣n đờ̉ thực hiờ ̣n viờ ̣c gửi đi mụ ̣t sự kiờ ̣n. Đụ́i tượng Timer thực thi mụ ̣t thread và sinh ra mụ ̣t hoă ̣c nhiờ̀u hành vi sự kiờ ̣n sau khi xác đi ̣nh được lă ̣p la ̣i.

Một phần của tài liệu Giáo trình java gửi với Swing phần 1 (Trang 26 - 27)