Nội dung bài viết
Video học lập trình mỗi ngày
Mục tuyển dụng là vậy...
Yêu cầu vị trí Backend chỉ cần vậy mà thôi?
Bạn đã đọc và thấy đúng không? Chính xác là những nhà tuyển dụng họ rất quan tâm đến việc triển khai nhiều transaction
cùng một lúc. Vì vậy trọng tâm là bạn muốn apply vào vị trí đó thì nếu như có kịch bản đó xảy ra thì bạn sẽ làm gì?
Khi join vào một team bất kể ngôn ngữ Java hay go hay một ngôn ngữ nào thì nếu là vị trí liên quan đến tầng backend, bạn sẽ nghe rất nhiều về "đa luồng" (multithreading). Có thể bạn tự hỏi: "Tại sao nó lại quan trọng đến vậy?", "Bắt đầu học từ đâu?". Nếu bạn đang có những thắc mắc đó, thì tôi ngày xưa cũng không khác gì là mấy, vì vậy tôi có thể nói ra những kiến thức trọng tâm đối với tôi, và hy vọng bạn có cùng chung quan điểm.
Còn nếu cảm thấy tôi đang thiếu sót hay bỏ qua một vấn đề nào khác, vui lòng thêm cho tôi một lời tham khảo. Cảm ơn anh em
Xử lý tình huống đa luồng
Giờ server nào cũng có multi-core
vì vậy hãy cố gắng lợi dụng
và bắt nó làm việc hết công suất, lúc đó các tác vụ mới thực sự là hiệu quả. Cái nền tảng căn bản bạn phải hiểu trước là Concurrency (Đồng thời) vs. Parallelism (Song song) : Đây là hai khái niệm thường bị nhầm lẫn. Nên hiểu rõ chúng giúp bạn biết khi nào tác vụ thực sự chạy cùng lúc và khi nào chúng chỉ "xen kẽ" nhau.
Bạn có thể tham khảo một bài viết tuyệt vời Hoá ra tôi đã thực sự chưa hiểu về Concurrency vs Parallelism sau khi kết thúc phỏng vấn
Không cần nói nhiều ở đây, vài tuần trước tôi thực sự khởi động những bài viết nói về "JAVA Intern: Học JAVA từ những khái nhiệm quan trọng" nói về Multi-Thread
và khi nào sử dụng chúng.
Nay tôi sẽ bổ sung trước cho các bạn những khái niệm quan trọng tiếp theo nếu như bạn muốn đi trước và tìm hiểu trước mọi người.
Giải quyết đa luồng (Multi-Thread) thì những khái niệm này nên trải nghiệm
Tôi đã sắp xếp rất kỹ về lộ trình bạn nên học. Hãy chú ý, cấp độ dễ học và cấp độ được thưởng sử dụng trong các dự án như yêu cầu tuyền dụng trên kia..
Usage Frequency: ★★★★★ (Rất thường gặp/quan trọng trong các dự án) -> ☆☆☆☆☆ (Ít gặp/ít quan trọng) Learning Difficulty: ★★★★★ (Rất khó học/hiểu sâu) -> ☆☆☆☆☆ (Rất dễ học/hiểu)
Cách học: Hãy học những keywords
mà thường xuyên sử dụng trong các dự án. Tập trung vào đó...
Câu hỏi phỏng vấn về đa luồng
How do you ensure thread safety in a Java program? Usage Frequency: ★★★★★ Learning Difficulty: ★★★★★
What is the difference between threads and processes? Usage Frequency: ★★★★★ Learning Difficulty: ★★☆☆☆
What are the ways to create a thread? Usage Frequency: ★★★★★ Learning Difficulty: ★★☆☆☆
What is the difference between a thread's run() and start() methods? Usage Frequency: ★★★★★ Learning Difficulty: ★★☆☆☆
What is the difference between sleep() and wait()? Usage Frequency: ★★★★★ Learning Difficulty: ★★★☆☆
What is the difference between parallelism and concurrency? Usage Frequency: ★★★★★ Learning Difficulty: ★★★☆☆
What is deadlock? Usage Frequency: ★★★★★ Learning Difficulty: ★★★☆☆
What is the difference between synchronized and volatile? Usage Frequency: ★★★★★ Learning Difficulty: ★★★★☆
How to prevent deadlock? Usage Frequency: ★★★★★ Learning Difficulty: ★★★★☆
What is the difference between synchronized and Lock? (Referring to java.util.concurrent.locks.Lock) Usage Frequency: ★★★★★ Learning Difficulty: ★★★☆☆
What is the difference between synchronized and ReentrantLock? Usage Frequency: ★★★★★ Learning Difficulty: ★★★☆☆
What are the ways to create a thread pool? Usage Frequency: ★★★★★ Learning Difficulty: ★★★☆☆ (Easy with Executors, harder to understand ThreadPoolExecutor deeply)
Explain the difference between Runnable and Callable. Usage Frequency: ★★★★☆ Learning Difficulty: ★★☆☆☆
What are the states of a thread? Usage Frequency: ★★★★☆ Learning Difficulty: ★★★☆☆
What is the difference between notify() and notifyAll()? Usage Frequency: ★★★★☆ Learning Difficulty: ★★★☆☆
What is the difference between the submit() and execute() methods in a thread pool? Usage Frequency: ★★★★☆ Learning Difficulty: ★★☆☆☆
What is ThreadLocal? What are its use cases? Usage Frequency: ★★★★☆ Learning Difficulty: ★★★☆☆
Explain the underlying implementation principle of synchronized. Usage Frequency: ★★★★☆ Learning Difficulty: ★★★★☆
What is a daemon thread? Usage Frequency: ★★★☆☆ Learning Difficulty: ★★☆☆☆
What are the states of a thread pool? Usage Frequency: ★★★☆☆ Learning Difficulty: ★★★☆☆
Chúc anh em vươn mình mạnh mẽ...