Giới thiệu về ArrayBlockingQueue
ArrayBlockingQueue là queue bị giới hạn dung lượng, dựa trên mảng, FIFO, thread-safe. Kiểm tra rỗng (empty) thường dùng trước khi lấy phần tử để tránh exception hoặc blocking.
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project, điền thông tin cần thiết.
Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/actionEvent"
android:textSize="40sp"
android:layout_marginTop="30dp"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
Bước 3: Viết logic (src/MainActivity.java)
package com.example.myapplication;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.concurrent.ArrayBlockingQueue;
public class MainActivity extends AppCompatActivity {
ArrayBlockingQueue<String> arrayBlockingQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arrayBlockingQueue = new ArrayBlockingQueue<>(50);
final TextView actionEvent = findViewById(R.id.actionEvent);
arrayBlockingQueue.add("sai");
arrayBlockingQueue.add("ram");
arrayBlockingQueue.add("krishna");
arrayBlockingQueue.add("prasad");
actionEvent.setText("Queue: " + arrayBlockingQueue.toString());
actionEvent.setOnClickListener(new View.OnClickListener() {
@SuppressLint("SetTextI18n")
@Override
public void onClick(View v) {
boolean isEmpty = arrayBlockingQueue.isEmpty();
actionEvent.setText("isEmpty: " + isEmpty);
}
});
}
}
Chạy ứng dụng
Kết nối thiết bị và chạy ứng dụng.

Nhấn vào TextView để kiểm tra rỗng:

Các phương thức liên quan:Ứng dụng: Trong consumer loop, thường dùng
Phương thức Ý nghĩa isEmpty()Trả về true nếu size() == 0 size() == 0Tương đương isEmpty() peek() == nullCách khác kiểm tra rỗng (peek trả về null nếu rỗng) poll()(trả về null nếu rỗng) hoặctake()(block cho đến khi có phần tử) thay vì check isEmpty() rồi poll() (race condition).