bài giảng lập trình java

424 146 0
bài giảng lập trình java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LẬP TRÌNH JAVA CĂN BẢN CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung mơn học • • • • • • • • • • Chương 1- Tổng quan ngôn ngữ Java Chương 2- Giới thiệu ngôn ngữ Java Chương 3- Đối tượng lớp Chương 4- Quản lý lỗi gom rác Chương 5- Lập trình I/O Chương 6- Tạo giao diện người dùng Chương 7- Mơ hình biến cố với AWT Chương 8- Lập trình đồ họa với Java Chương 9- Tạo Applet Chương 10- Lập trình đa luồng CuuDuongThanCong.com https://fb.com/tailieudientucntt Tài liệu tham khảo • • Bước đầu làm quen Java, Phương Lan • Horton; Wrox Press; ISBN: Java: Lý thuyết tập, Trần Tiế n Dũng CuuDuongThanCong.com Beginning Java SDK 1.4 Edition, by Ivor • Thinking in Java, 3/e by Bruce Eckel; Prentice 1861005695 Hall; ISBN: 0131002872 https://fb.com/tailieudientucntt Chuẩ trình n bị mơi trường lập CuuDuongThanCong.com https://fb.com/tailieudientucntt Download Java Software: Java Standard Edition Documentation Có thể mua đĩa CD CuuDuongThanCong.com https://fb.com/tailieudientucntt Cài đặt môi trường Java Xả nén Chạy CuuDuongThanCong.com https://fb.com/tailieudientucntt Download JCreator- Môi trường lập trình Có thể mua đĩa CD CuuDuongThanCong.com https://fb.com/tailieudientucntt Cài đặt JCreator Pro Các thư mục kết qủa Chạy Mở thư mục Lấy file crack, chép đè vào file cài đặt CuuDuongThanCong.com https://fb.com/tailieudientucntt Cấu hình JCreator-slide JCreator môi trường cho ta xây dựng ứng dụng Java Do vậy, ta cần cấu hình cho JCreator bao gồm: Thư mục chứa lớp Java, thư mục nguồn, thư mục chứa file trợ giúp Chạy Jcreator từ Start/ Hoặc biểu tượng JCreator Pro desktop CuuDuongThanCong.com https://fb.com/tailieudientucntt Cấu hình JCreator-slide Chọn thư mục cài đặt JDK Chọn JDK Profile Kích New CuuDuongThanCong.com https://fb.com/tailieudientucntt Minh họa đồng khối Chương trình sau viết lại chương trình trước, bỏ qua từ khóa synchronized lớp Monitor1 ( gọi lớp Monitor2) class Monitor2 // Monitor2.java { void Display (int num) { System.out.println("Output " + num + " - done."); try { Thread.sleep(500); // current thread sleap 1/2 sec } catch (InterruptedException e) { Syste } ; m.out.println ("Thread is interrupted!") } } CuuDuongThanCong.com https://fb.com/tailieudientucntt Minh họa đồng khối class Synchro { public static void main (String args[]) { Monitor2 monitor = new Monitor2(); int num = 10; OutNum Obj1 = new OutNum(monitor,num++); OutNum Obj2 = new OutNum(monitor,num++); OutNum Obj3 = new OutNum(monitor,num++); // wait for threads to end try { Obj1.t.join(); Obj2.t.join(); Obj3.t.join(); } catch(InterruptedException e) { System } out.println ("Thread was interrupted!"); } } CuuDuongThanCong.com https://fb.com/tailieudientucntt Minh họa đồng khối class OutNum implements Runnable { Monitor2 monitor; int number; Thread t; OutNum(Monitor2 moni, int n ) { monitor= moni; number = t = new Th t.start(); } n; read(this); public void run() { synchronized (monitor) { monito } r.Display(number); } } CuuDuongThanCong.com https://fb.com/tailieudientucntt Minh họa đồng khối CuuDuongThanCong.com https://fb.com/tailieudientucntt 9.8- Deadlock Deadlock – tình bế tắc, đóng băng- xẩy luồng chờ tài nguyên (monitor) hình thành chu trình Deadlock xẩy Minh họa: DeadlockDemo.java CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải thích DeadlockDemo class ứng dụng có luồng :Luồng t1 đối tượng d1, luồng t2 đối tượng d2 Monitor t1 lại d2 monitor t2 lại d1 (tréo nhau) Cả luồng gọi hành vi synchronized run() ngủ 300 mili giây.Vì chia sẻ thời gian CPU nên t1 ngủ trước Khi t1 th hro() t2 ngủ sau (xem phương thức run()) đối tượng monitor d2 (chứa t2)up), gọi luồng ức dậyluồng (wake phương thức Sync t2 ngủ nên phương thức chưa thể thực thi Khi t2 thức dậy (wake up), phương thức Synchro() đối tượn luồng thực thi c gọi t1 ngủ nên phương thức chưa thể g monitor d1 (chứa luồng t1) đượ Như chương trình đóng băng (blocked) khơng làm CuuDuongThanCong.com https://fb.com/tailieudientucntt 9.9- Cơ chế chờ- nhận biết Java cung cấp sẵn chế giao tiếp liên qúa trình (inter-process mechanism) để luồng gọi (yêu cầu nhau) lớp Object: wait() , notify() , notifyAll() Như lớp sử dụng chúng sử pdụng final methods gọi synchronized methods hương thức CuuDuongThanCong.com https://fb.com/tailieudientucntt Cơ chế wait-notify Phương thức wait() : Luồng nhả monitor để vào trạng thái sleep luồng khác vào monitor gọi phương thức notify Phươn y (wake g thức notify() Luồngthứ thức dậ gọi wait() up) nhận biết (notify) rằng: luồng Phương thức notifyAll() : Đánh thức tất luồng ngủ để chúng biết luồng hành luồng ngủ thức dậy, luồng có ưu tiên cao nắm giữ monitor thực thi gọi phương thức wait() Khi tất CuuDuongThanCong.com https://fb.com/tailieudientucntt Chú ý phương thức wait Luồng gọi phương thức wait() nhả CPU, không dùng CPU Luồng gọi phương thức wait() nhả monitor, thơi khơng khóa (lock) monitor Luồng gọi phương thức wait() đưa tor (monitor waiting pool) o danh sách hàng đợi moni CuuDuongThanCong.com https://fb.com/tailieudientucntt Chú ý phương thức notify Một luồng ngủ đưa khỏi monitor waiting pool vào trạng thái ready Luồng vừa thức giấc (notify) phải giành lại monitor khóa monitor lại khơng cho luồng khác chiếm để luồng thực thi CuuDuongThanCong.com https://fb.com/tailieudientucntt Chú ý phương thức notifyAll Luồng thực thi cảnh báo cho tất luồng ngủ “Tôi ngủ đây, bạn dậy để làm việc” Luồng đầu danh sách monitor waiting pool vào trạng thái ready CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài toán triết gia ăn tối với đũa CuuDuongThanCong.com https://fb.com/tailieudientucntt 9.10- Tóm tắt Luồng biện pháp chia cơng việc thành đơn vị cụ thể (concrete) nên dùng để thay vòng lặp Lập trình đa luồng làm tăng hiệu suất CPU hệ thống “bận rộn” Tuy nhiên hiệu suất ứng dụng lại bị giảm kể (chậm ba bốn lần tác vụ đồng hóa), qúa trình biên dịch chậm trình biên dịch phải tính tốn chế qu dụng đòi hỏi yếu tố hiệ sử dụng kỹ ản lý luồng Do caùc ứng thuật đồng hóa  Nhiều lập trình viên khơng thích lập trình đa luồng mà dùng lập trình lập u suất thời gian quan trọng, nên tránh trình đơn luồng để tăng hiệu suất ứng dụng Java cung cấp kỹ thuật lập trình đa luồng lớp Thread interface Runnable Khi ứng ạy luồng (main thread) Luồng quan trọng (1) Đây luồng sinh luồng con, (2) dụng Java thực thi, có luồng ch Quản lý việc kết thúc ứng dụng luồng main kết thúc tất luồng kết thúc CuuDuongThanCong.com https://fb.com/tailieudientucntt Tóm tắt Hiện thực luồng cách: Hiện thực lớp lớp Thread, override phương thức run() lớp Khai báo lớp mà ta xây dựng implement interface Runnable định nghĩa phương thức run() Mỗi java thread có độ ưu tiên từ (MIN) đến 10 (MAX) với trị mặc định JVM không thay đổi độ ưu tiên luồng Có contructor lớp Thread constructor thường dùng: Thread() Thread(String TênLuồng), Thread(ĐốiTượngChứa) Các phương thức Thread.suspend(), Thread.resume(), Thread.stop() khơng dùng kể từ Java Luồng da p dịch vụ emon luồng chạy ngầm nhằm cung cấ cho luồng khác Nếu muốn luồng daemon, dùng public final void setDeamon (boolean) kiểm tra luồng có daemon hay khơng, dùng public final boolean isDaemon() CuuDuongThanCong.com https://fb.com/tailieudientucntt Tóm tắt Dữ liệu bị quán(hư hỏng) có luồng truy xuất liệu thời điểm Đồng 1quá trình bảo đảm tài nguyên (dữ liệu, file,…) luồng sử dụng thời điểm Tuy nhiên, chi phí cho việc lại làm giảm hiệu suất thời gian ứng dụng xuống 3, lần Phương ngủ ng thaí thức wait() làm luồng vào trạ Phương thức notify() đánh thức luồng thứ danh sách luồng chờ đối tượng monitor Phương thức notifyAll() đánh thức tất luồng dan monitor đối tượng h sách luồng chờ Deadlock xẩy luồng có phụ thuộc vòng cặp đối tượng quản lý việc đồng (synchronized object) CuuDuongThanCong.com https://fb.com/tailieudientucntt ... https://fb.com/tailieudientucntt Nội dung chương 1.1- Lịch sử Java 1.2- Những đặc điểm Java 1.3- Máy ảo Java- JVM 1.4- Mơi trường lập trình Java 1.5- Chương trình Java 1.7- Tóm tắt 1.8- Trắc nghiệm tập CuuDuongThanCong.com... https://fb.com/tailieudientucntt Đặc điểm Java (tt) Chương trình Java  Tính tương thích khả chuyển (Portability) Compile r Chương trình Bytecode độc lập platform Java Runtime Interpreter/ JVM thực thi Javabytecode IBM... Chương 8- Lập trình đồ họa với Java Chương 9- Tạo Applet Chương 10- Lập trình đa luồng CuuDuongThanCong.com https://fb.com/tailieudientucntt Tài liệu tham khảo • • Bước đầu làm quen Java, Phương

Ngày đăng: 25/06/2020, 13:21

Mục lục

    LẬP TRÌNH JAVA CĂN BẢN

    Nội dung môn học

    Tài liệu tham khảo

    Cài đặt môi trường Java

    Download JCreator- Môi trường lập trình

    Cài đặt JCreator Pro

    Cấu hình thư mục- slide 6

    Giới thiệu môi trường JCreatorPro

    Biên dịch thành công và chạy chương trình

    Trợ giúp trực tuyến trong JCreator Pro

Tài liệu cùng người dùng

Tài liệu liên quan