Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách sử dụng LinkedBlockingDeque trong Android

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).