Stream এবং এর প্রয়োগ

Asynchronous Programming (অ্যাসিনক্রোনাস প্রোগ্রামিং) - ডার্ট প্রোগ্রামিং (Dart Programming) - Computer Programming

378

Stream এবং এর প্রয়োগ

Stream Dart-এ একটি শক্তিশালী কনসেপ্ট যা ডেটা প্রবাহকে বাস্তব সময়ে পরিচালনা করতে সহায়ক। এটি একাধিক মানের একটি সিকোয়েন্স প্রদান করে যা সময়ের সাথে সাথে আসে, এবং এটি সাধারণত অব্যাহত ডেটা প্রবাহ (যেমন, ইউজার ইন্টারঅ্যাকশন, নেটওয়ার্ক ডেটা, বা ফাইল পড়া) পরিচালনার জন্য ব্যবহৃত হয়।

Stream কী?

  • Stream হল একটি Dart অবজেক্ট যা একাধিক মান (বা ইভেন্ট) ধারাবাহিকভাবে পাঠায়। এটি asynchronous অপারেশনের ফলাফলকে পরিচালনা করতে ব্যবহৃত হয়।
  • Streams মূলত দুই ধরনের হয়:
    • Single-subscription Stream: একটি সময়ে শুধুমাত্র একটি সাবস্ক্রাইবার থাকতে পারে।
    • Broadcast Stream: একাধিক সাবস্ক্রাইবার থাকতে পারে।

Stream তৈরির উদাহরণ

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি Stream তৈরি করা হয়েছে যা প্রতি এক সেকেন্ডে একটি সংখ্যা পাঠায়।

// Stream তৈরি করা
Stream<int> numberStream() async* {
  for (int i = 1; i <= 5; i++) {
    await Future.delayed(Duration(seconds: 1));
    yield i; // Stream এ মান পাঠানো
  }
}

void main() async {
  // Stream এর মাধ্যমে মান গ্রহণ করা
  await for (int number in numberStream()) {
    print(number); // Output: 1, 2, 3, 4, 5 (one every second)
  }
}

Stream এর প্রয়োগ

ইউজার ইন্টারঅ্যাকশন:

  • Stream ব্যবহার করে ইউজার ইন্টারঅ্যাকশনের ফলাফল (যেমন, ক্লিক ইভেন্ট) পরিচালনা করা যায়।

নেটওয়ার্ক কল:

  • ডেটা ধারাবাহিকভাবে আসলে (যেমন, WebSocket বা HTTP streaming) Stream ব্যবহৃত হয়।

ফাইল পড়া:

  • বড় ফাইলগুলির সামগ্রী পড়ার সময় Stream ব্যবহার করা হয় যাতে পুরো ফাইলটি একসাথে মেমরিতে লোড না হয়।

ভিডিও স্ট্রিমিং:

  • ভিডিও বা অডিও স্ট্রিমিংয়ের জন্য ডেটা ধারাবাহিকভাবে প্রসেস করা হয়।

উদাহরণ: ইউজার ইনপুট থেকে Stream তৈরি

import 'dart:async';
import 'dart:io';

Stream<String> getUserInput() async* {
  while (true) {
    String input = stdin.readLineSync()!;
    yield input; // ইউজার ইনপুট Stream এ পাঠানো
  }
}

void main() async {
  print("Enter text (type 'exit' to quit):");
  await for (String input in getUserInput()) {
    if (input.toLowerCase() == 'exit') {
      print("Exiting...");
      break;
    }
    print("You entered: $input");
  }
}

উপসংহার

Stream Dart-এ একটি অত্যন্ত কার্যকরী কনসেপ্ট যা asynchronous ডেটা প্রবাহ পরিচালনা করার জন্য ব্যবহৃত হয়। এটি ডেটা প্রবাহের সাথে যুক্ত বিভিন্ন ক্ষেত্রে কার্যকরভাবে ব্যবহার করা যায়, যেমন ইউজার ইন্টারঅ্যাকশন, নেটওয়ার্ক কল, এবং ফাইল পড়া। Streams ব্যবহার করে আপনি একটি উন্নত এবং প্রতিক্রিয়াশীল অ্যাপ্লিকেশন তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...