YellowCode.Books

Java Bài 49 – Thread Pool Tập 2 – Executors, Executor Và ExecutorService

Như vậy là sau tập đầu tiên của Thread Pool, bạn đã biết được rằng mình đang cố gắng giúp bạn ghi nhớ được ý nghĩa của kỹ thuật này như là một cái Hồ điều tiết Thread. Từ việc hiểu ý nghĩa đó, bạn cũng đã nắm được công năng và nắm được có bao nhiêu cách để có thể tổ chức nên cái hồ này.
Tuy nhiên tất cả cũng vẫn dừng lại ở lý thuyết. Việc hiểu tường tận hơn từng cách sử dụng Hồ, và làm quen với các ví dụ, chính là mục đích chính bắt đầu từ bài học hôm nay.
Mặc dù mình đã cố gắng trình bày hết mức có thể cách sử dụng cũng như ý nghĩa của các phương thức mà bộ ba các lớp của bài hôm nay mang lại, nhưng mình biết sẽ còn thiếu sót nhiều lắm. Một phần vì giới hạn của bài viết, tránh viết quá dài (thực ra nó cũng dài lắm rồi, và tốn rất nhiều thời gian để viết bài này), phần nữa vì mình cũng chưa có cơ hội sử dụng hết tất cả các kiến thức mà Thread Pool mang lại, vì chúng khá rộng lớn. Nên qua bài học nếu bạn nào có những đóng góp, xây dựng thì hãy liên lạc với mình qua các kênh mình liệt kê ở cuối bài viết hôm nay nhé.
Nào chúng ta cùng bắt đầu làm quen với cách sử dụng Thread Pool thông qua bộ ba tiện ích: Executors, Executor và ExecutorService.

Java Bài 48: Thread Pool Tập 1 – Làm Quen Với Thread Pool

Như mình có nói, Java vốn tự hào là ngôn ngữ mạnh mẽ, một trong số đó là việc hỗ trợ các lập trình viên chúng ta thao tác với Thread. Và bạn đã chứng kiến điều đó thông qua khá nhiều các bài học liên quan đến các định nghĩa, cách sử dụng, và cả những vấn đề liên quan đến tổ chức, đồng bộ Thread nữa. Hôm nay, chúng ta lại tiếp tục làm quen một kiến thức nữa, cũng không nằm ngoài Thread. Một kiến thức nghe rất hay, Thread pool – Một cái hồ bơi dành cho Thread?!.

Kotlin Bài 6: Các Kiểu Dữ Liệu Trong Kotlin

Kết thúc bài học về Dữ liệu & Kiểu dữ liệu hôm trước, bạn đã biết tại sao mà một ngôn ngữ lập trình định nghĩa ra Dữ liệu, và phân làm nhiều Kiểu dữ liệu rồi. Bạn còn sử dụng Biến và Hằng để chính thức giúp chương trình của bạn có được Dữ liệu để tương tác cũng như lưu trữ. Thông qua các khái niệm và các ví dụ từ bài học cũ này, bạn đã phần nào làm quen với một vài Kiểu dữ liệu mà Kotlin hỗ trợ. Sang bài học hôm nay, bạn sẽ được làm quen cụ thể từng Kiểu dữ liệu một, xem các kiểu này là gì và có khó áp dụng không nhé.

[Review Sách] Android Studio 3.4 Development Essentials – Kotlin Edition

Bắt tầu từ bài viết hôm nay của chuyên mục này, mình sẽ lần lượt giới thiệu với các bạn các quyển eBook về kỹ thuật hay về kỹ năng lập trình đang được bày bán trên Amazon. Các quyển sách này sẽ là các sách mà mình đã đọc qua, thậm chí có quyển đã được mình tham khảo và gạn lọc để lấy nội dung trong đó viết thành các bài học lập trình trên trang blog của mình.

Kotlin Bài 5: Khái Niệm Dữ Liệu, Kiểu Dữ Liệu & Khai Báo Biến

Như vậy bạn đã có trong tay các công cụ cần thiết để thử nghiệm lập trình với Kotlin rồi. Và bạn cũng đã thực thi vài dòng code rồi đấy thôi. Từ bài học hôm nay, chúng ta sẽ dần hé mở các nguyên tắc của các dòng code, để giúp bạn ngày càng sáng tỏ và thông thạo hơn đối với ngôn ngữ Kotlin. Nào, hãy bắt đầu với khái niệm Dữ liệu và Kiểu dữ liệu trong lập trình nhé.

Kotlin Bài 4: Làm Quen Với Ngôn Ngữ Kotlin

Bài trước các bạn đã cùng mình tạo mới project Android có hỗ trợ Kotlin, tuy nhiên với Android, có một điều rất thú vị là ngay khi bạn tạo xong một project, bạn hoàn toàn có thể thực thi ngay lên ứng dụng thật hay ảo mà không cần biết đến lập trình là gì cả.
Điều này làm cho các bạn nào mới tiếp cận với lập trình đều cảm thấy rất ngứa ngáy. Bạn sẽ muốn được thử nghiệm gõ vào các dòng code để xem như thế nào, thực thi chúng ra sao đúng không. Bạn đừng vội quá, bài học hôm nay sẽ giúp làm giảm triệu chứng ngứa ngáy của bạn một chút. Chúng ta sẽ cùng nhau tiếp cận ở mức làm quen sơ bộ về lập trình Kotlin, để xem ngôn ngữ này nó trông như thế nào, cách luyện tập ra sao, và dĩ nhiên chúng ta sẽ cùng thực thi code đó để xem sẽ ra kết quả là gì nhé.

Java Bài 47: Deadlock

Với việc kết thúc bài học hôm trước thì chúng ta cũng đã xong kiến thức về Đồng bộ hóa Thread. Bạn đã thấy vai trò rất đắc lực của từ khóa synchronized trong việc đảm bảo không xảy ra sự tranh chấp đối với tài nguyên dùng chung rồi đúng không nào. Quả thật synchronized rất tốt, nhưng nếu lạm dụng nó không đúng chỗ, bạn sẽ gặp một tình huống mà bài học hôm nay nhắm đến. Tình huống đó có tên là Deadlock.

Android Architecture Component – Phần 4: Tìm Hiểu Về Room

Với việc xem hết bài viết hôm nay, thì bạn cũng đã cùng mình đi qua tổng cộng 4 thành phần lớn trong kiến trúc mới này của Android rồi đấy. Mình xin nhắc lại rằng, với việc hiểu và áp dụng các thành phần mới này vào ứng dụng, sẽ làm cho ứng dụng của bạn trở nên: mạnh mẽ hơn, dễ kiểm lỗi hơn, và dễ bảo trì hơn. Trước khi đi vào tìm hiểu thành phần cuối cùng này, mình xin tóm tắt lại 3 phần trước đây như sau.

Java Bài 46: Đồng Bộ Hóa Tập 3 – Đồng Bộ Cooperation – Các Từ Khóa wait/notify/notifyall

Thật là một thời gian khá lâu cho bài học về Java phần tiếp theo này. Đây có thể được xem là bài viết Java khởi đầu cho năm mới, tuy nhiên lại là một chủ đề “còn nợ” lại từ năm cũ. Có thể vì thời gian đợi khá lâu sẽ làm bạn quên đôi chút. Mình xin nhắc lại là chúng ta đang nói về các cách thức Đồng bộ hóa thread trong lập trình Java. Chúng ta tìm cách làm sao để các Thread tuy được “tự do tự tại” trong việc thực thi các tác vụ song song, lại có thể biết tuân thủ theo các nguyên tắc trật tự nào đó khi chúng có sử dụng chung đến các đối tượng, hay chúng ta gọi là các tài nguyên. Bài hôm trước là một cách, hôm nay chúng ta đến với cách thứ hai.

Android Architecture Component – Phần 3: Tìm Hiểu Về Lifecycle Aware Components

Ở các phần trước, chúng ta đã cùng nhau nói đến cách sử dụng hai thành phần cơ bản trong bộ kiến trúc Android Architecture Component mà Google mang tới, đó là ViewModel và LiveData.
Quả thật hai thành phần ViewModel và LiveData cũng đã giúp ích chúng ta giải quyết rất nhiều yêu cầu cơ bản từ các ứng dụng hiện nay rồi. Thế nhưng bấy nhiêu đó thôi vẫn chưa nói hết sức mạnh của Android Architecture Component mang lại. Chúng ta còn phải nói nhiều hơn vể công dụng của kiến trúc mới này. Và hôm nay mình xin trình bày một khía cạnh khác nữa của nó, khía cạnh này có cái tên Lifecycle-Aware Components.