Tổng quan LinkedBlockingDeque
LinkedBlockingDeque implement BlockingDeque (kế thừa BlockingQueue, Deque). Dựa trên linked nodes. Có thể bounded (nếu chỉ định capacity) hoặc unbounded. Hỗ trợ blocking operations (put, take) và timed operations.
Ví dụ cơ bản (Unbounded)
package com.example.myapplication;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.TextView;
import java.util.concurrent.LinkedBlockingDeque;
public class MainActivity extends AppCompatActivity {
private LinkedBlockingDeque<String> linkedBlockingDeque;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linkedBlockingDeque = new LinkedBlockingDeque<>(); // Unbounded
final TextView actionEvent = findViewById(R.id.actionEvent);
linkedBlockingDeque.add("sai");
linkedBlockingDeque.add("ram");
linkedBlockingDeque.add("krishna");
linkedBlockingDeque.add("prasad");
linkedBlockingDeque.add("ram");
actionEvent.setText("Deque: " + linkedBlockingDeque);
}
}
Khi nào dùng?
- Producer-Consumer cần blocking khi đầy/rỗng.
- Cần thao tác 2 đầu (head/tail).
- Cần giới hạn bộ nhớ (bounded).