By GokiSoft.com|
17:18 31/07/2023|
Java Advanced
[Share Code] Bài thi Java 2 - C2209I
Tóm tắt nội dung thi:
- Exception
- Collections:
ArrayList & Vector
Hashmap
- Thread
Đồng bộ 2 Thread
- B1. Tạo Thread
- B2. Viết logic cho các Thread
- B3. Thực hiện đồng bộ (sync)
- B4. Kiểm soát wait & notify
- File
- FileInputStream & FileOutputStream
- FileReader & FileWriter + Buffered...
- ObjectInputStream & ObjectOutputStream
- CSDL:
- Console
- Java Swing
- Các bước triển khải
B1. Tạo CSDL
B2. Tạo table & mockup dữ liệu
B3. Tạo dự án + nhúng thư viên jdbc mysql driver maven
B4. Mapping model <-> tables
B5. CRUD
B6. Tạo UI/Logic Console
B7. Nối CRUD & UI
- Localization: Đa ngôn ngữ
- Regular Expression
- Không sử dụng Scanner để nhập -> Dùng cách khác
=============================================================================
#Main.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.gokisoft.bt3250;
/**
*
* @author teacher
*/
public class Main {
public static void main(String[] args) {
SharedData sharedData = new SharedData();
Thread1 t1 = new Thread1(sharedData);
Thread2 t2 = new Thread2(sharedData);
t2.start();
t1.start();
}
}
#SharedData.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.gokisoft.bt3250;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
/**
*
* @author teacher
*/
public class SharedData {
Map<String, String> languages;
String key;
int count;
public SharedData() {
languages = new HashMap<>();
languages.put("Monday", "T2");
languages.put("Tuesday", "T3");
languages.put("Wednessday", "T4");
languages.put("Thurday", "T5");
languages.put("Friday", "T6");
languages.put("Saturday", "T7");
languages.put("Sunday", "CN");
count = 0;
}
public String getEN() {
Set<String> keys = languages.keySet();
Object[] keyList = keys.toArray();
Random random = new Random();
int rad = random.nextInt(keyList.length);
key = (String) keyList[rad];
count++;
return key;
}
public String getVN() {
return languages.get(key);
}
public boolean isLive() {
return count < 20;
}
}
#Thread1.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.gokisoft.bt3250;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author teacher
*/
public class Thread1 extends Thread{
SharedData sharedData;
public Thread1(SharedData sharedData) {
this.sharedData = sharedData;
}
@Override
public void run() {
while(sharedData.isLive()) {
synchronized (sharedData) {
String en = sharedData.getEN();
System.out.println(en);
sharedData.notifyAll();
try {
sharedData.wait();
} catch (InterruptedException ex) {
Logger.getLogger(Thread1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
synchronized (sharedData) {
sharedData.notifyAll();
}
System.out.println("T1 stop");
}
}
#Thread2.java
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.gokisoft.bt3250;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author teacher
*/
public class Thread2 extends Thread {
SharedData sharedData;
public Thread2(SharedData sharedData) {
this.sharedData = sharedData;
}
@Override
public void run() {
while (sharedData.isLive()) {
synchronized (sharedData) {
sharedData.notifyAll();
try {
sharedData.wait();
} catch (InterruptedException ex) {
Logger.getLogger(Thread2.class.getName()).log(Level.SEVERE, null, ex);
}
String value = sharedData.getVN();
System.out.println(value);
}
}
synchronized (sharedData) {
sharedData.notifyAll();
}
System.out.println("T2 stop");
}
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)