একটি স্রোত এবং একটি সারি মধ্যে পার্থক্য কি?


13

একটি স্রোত এবং একটি সারি মধ্যে পার্থক্য কি? তাদের উভয়েরই উপাদানগুলির একটি আদেশকৃত সেট ধারণা রয়েছে, তবে বিভিন্ন প্রয়োগ এবং 'সন্নিবেশ' / 'এক্সট্র্যাক্ট' (স্ট্রিম) বনাম 'এনকুই' / 'ডেকিউ' (সারি) এর আলাদা শব্দভাণ্ডার রয়েছে to এগুলি কি বিনিময়যোগ্য? তারা বিভিন্ন ধারণা বা নিদর্শন প্রস্তাব? তা হলে পার্থক্য কী?


স্পষ্টতই "স্ট্রিম" বিভিন্ন প্রসঙ্গে বিভিন্ন জিনিসকে বোঝায়। আর্কিটেকচার স্পোকের কোনও ইভেন্ট স্ট্রিম বনাম সিওএম-এর উইন্ডোজ আইএসট্রিম ইন্টারফেসের মধ্যে বৈশিষ্ট্যগুলির মধ্যে পার্থক্য রয়েছে । আপনি কি স্পষ্ট করতে পারেন?
রোবং

একজন কাঠবাদান একটি স্রোত থেকে কিছু জল সংগ্রহ করে তবে তারা সমস্ত জল খায় না । সুতরাং কোনও স্ট্রিমের সম্পূর্ণ অর্থ ব্যয় না করে কোনও পরিমাণ সংগ্রহ করার অনুভূতি রয়েছে। অন্যদিকে, একটি সারিতে থাকা আইটেমগুলি অবসন্ন হতে পারে।
emallove

উত্তর:


11

একটি স্ট্রিম আসলে কোনও ডেটা কাঠামো যেমন (ধারণাগত) নয়, তবে ডিজিটালি এনকোডযুক্ত সুসংগত সিগন্যালগুলির একটি ক্রম যা (তথ্য বা ডেটা প্যাকেটের প্যাকেট) তথ্য প্রেরণ বা প্রাপ্ত করতে ব্যবহৃত হয় "। সুতরাং মূলত তথ্যের ক্রম।

একটি সারি হ'ল একটি ফিফো প্রক্রিয়া যা আপনাকে সারির পিছনে আইটেম যুক্ত করতে বা সামনে থেকে নিতে দেয়।

স্ট্রিমগুলির সর্বদা একটি উত্স থাকে, যেমন একটি ফাইল, নেটওয়ার্ক অবস্থান ইত্যাদি A একটি কাতারে সহজাত কোনও ডেটা থাকে না।

সুতরাং মূলত এগুলি ধারণায় একেবারেই আলাদা এবং ম্যাসন যেমন উল্লেখ করেছেন, তারা আলাদাভাবে ব্যবহার করা হয়।


আসলে "স্ট্রিম" নামে একটি ডেটা স্ট্রাকচার রয়েছে, (কার্যকরভাবে) উপস্থার জন্য উপাত্তের একটি তালিকা রয়েছে, এর লেজটিতে একটি প্রযোজক ফাংশন সহ, আপনার আরও উপাদান প্রয়োজন হলে কলযোগ্য।
ভ্যাটাইন

ইউনিক্স 'হ্যাঁ' কমান্ডটি একটি স্ট্রিমের মতো দেখাচ্ছে তবে এর কোনও নির্দিষ্ট ডেটা উত্স নেই।
জেবিআরউইলকিনসন

@ জেবিআরওয়িলকিনসন: যুক্তি ছাড়াই চালান, এর জন্য ডেটা উত্স yes(1)এম্বেডড ডিফল্ট স্ট্রিং। আর্গুমেন্ট দিয়ে চালান, এটি আর্গুমেন্টটি যা দেয়।
blrfl

হ্যাঁ, আপনি ঠিক বলেছেন - সমস্ত ডেটা কোথাও থেকে আসতে হবে। সম্ভবত এখানে আসল বিষয়টি হ'ল একটি সারি খালি থাকতে পারে এবং সংজ্ঞা অনুসারে একটি প্রবাহ সাধারণত হয় না?
জেবিআরউইলকিনসন

2
@ জেবিআর উইলকিনসন এটি কেস নয়। স্কিমে, (stream)একটি খালি স্ট্রিম প্রদান করে। এছাড়াও, এই উত্তরটি ভুল, একটি স্ট্রিম একটি ডেটা কাঠামো, স্ট্রিমগুলির কোনও উত্স নাও থাকতে পারে এবং স্ট্রিমগুলির মধ্যে সহজাতভাবে কোনও ডেটা থাকে না, সেগুলি শূন্য বা নাল বা খালি তালিকা হতে পারে। আরও তথ্যের জন্য SRFI-41 দেখুন 41
আয়া

5

মূল পার্থক্যটি তাদের ব্যবহারের পদ্ধতিতে is একটি স্ট্রিমে, আপনি সাধারণত অপারেশনের কেবল একটি দিক ব্যবহার করেন: আপনি পড়তে বা লেখার জন্য একটি স্ট্রিম খোলেন তবে দুটোই নয়। যেখানে একটি সারি রয়েছে, আপনি আইটেমগুলি রেখেছেন এবং সেগুলি বন্ধ করে দিচ্ছেন।

এছাড়াও, সারিগুলি, ক্রমে আপনার উপর কিছু করা এবং তাদের অপসৃত করা সম্পর্কে খুব কঠোর যখন স্ট্রিম প্রায়ই (তবে সব সময় নয়) একটি সমর্থন Seekঅপারেশন, বিশেষ করে যদি আপনি তাদের থেকে এসেছো পড়া।


3
FileStreamReadWriteমোডে খোলা যেতে পারে ।
রবার্ট হার্ভে

2
..আর অগ্রাধিকারের সারিগুলি অর্ডার সম্পর্কে বিকল্প দেয়
পিটার নর্ডল্যান্ডার

5

আমার অভিজ্ঞতায় স্ট্রিমটি বাইটের ক্রম যা প্রবাহের মধ্যে উপাত্ত দ্বারা নির্ধারিত হারের ভিত্তিতে প্রায়শই নির্ধারিত হয় consu উদাহরণস্বরূপ, একটি এমপিইজি ডেটা স্ট্রিমের ফ্রেম শিরোনাম থাকবে যা বাইটসের পরবর্তী ক্রমটি কী করবে এবং কতগুলি গ্রাস করতে হবে তা বর্ণনা করে। কোনও নথির বাইনারি সিরিয়ালাইজেশন একই রকম হবে। এটি সর্বদা স্ব-বর্ণনামূলক নয়: STDOUT এ লিখিতকরণ প্রবাহ অনুসারে করা যেতে পারে তবে এটি মানবিকভাবে পঠনযোগ্য / অ-পার্সেবল ডেটা হতে পারে।

বিপরীতভাবে, একটি সারি সাধারণত একটি সুপরিচিত ধরণের অবজেক্ট (বা ইন্টারফেস-সমর্থনকারী অবজেক্ট) এর পুরোপুরি গ্রাস হয়। উদাহরণস্বরূপ ডাটাবেস কাজের একটি সারি হতে পারে যা বেশ কয়েকটি ডাটাবেস কর্মীদের দ্বারা প্রক্রিয়া করা হয়।


5

স্ট্রিম এবং একটি সারির মধ্যে পার্থক্য হল ডেটা হারকে নিয়ন্ত্রণ করার উপায়:

  • একটি কাতারে, প্রেরক পাঠকের গতির সাথে মানিয়ে নেয়। প্রেরক সারি পূর্ণ হলে কী করবেন তা স্থির করে: কাতারের প্রাপ্যতার জন্য অপেক্ষা করুন বা ডেটা ফেলে দিন।

  • একটি স্ট্রিমে, পাঠক প্রেরকের গতির সাথে খাপ খাইয়ে দেয়, পাঠক সিদ্ধান্ত নেন যে কোনও পুরানো তথ্য গ্রাস হওয়ার আগে নতুন ডেটা উপস্থিত হলে কী করবেন।

সেই দৃষ্টিকোণের সাথে, ইউনিক্স পাইপগুলির মতো চরিত্রের স্ট্রিমগুলি স্ট্রিম হিসাবে নয় তবে সারি হিসাবে যোগ্য হবে।


অভিযোজিত ভিডিও স্ট্রিমিংয়ে, ক্লায়েন্টটি রক্ষণাবেক্ষণ না করায় সার্ভারটি নিম্ন বিশ্বস্ততার স্ট্রিমের সাথে সামঞ্জস্য করবে।
জেবিআরউইলকিনসন

@ জেবিআরওয়িলকিনসন - অভিযোজিত ভিডিও স্ট্রিমিংয়ে , সার্ভারটি বিভিন্ন বিট হারে স্রোতের একাধিক রূপ প্রেরণ করে। এই স্ট্রিমগুলির মধ্যে চয়ন করা ক্লায়েন্টের এখনও দায়িত্ব।
mouviciel

হ্যাঁ, এইচটিটিপি স্ট্রিমিং এটি করে। আমি ভিডিও কলিং বলতে চাইছিলাম যা পয়েন্ট-টু-পয়েন্ট এবং ডেটা প্রাক-এনকোডেড নয়। আমার খারাপ - আমি স্পষ্ট করা উচিত ছিল।
জেবিআরউইলকিনসন

একটি চরিত্রের স্ট্রিমের উদ্দেশ্য হ'ল ডেটা তৈরি হওয়ার সাথে সাথে কম-বেশি ব্যবহার করা হয়: এটি ধরে রাখার মাধ্যমের চেয়ে এটি ডেটার প্রবাহ। আমরা জানি যে এই অভ্যাস পূর্ণতা, কিন্তু একটি রূপক দৃষ্টিকোণ এটা সত্য হতে পারে বলে আশা করা হচ্ছে থেকে: পাঠক প্রবাহ প্রক্রিয়া করতে পারি যত দ্রুত এটা আসে।

5

শব্দগুলি কীভাবে ব্যবহৃত হয় সে সম্পর্কে আমরা যদি আরও দৃষ্টি দিয়ে চিন্তা করি , তবে আমরা নির্দিষ্ট ভাষা এবং প্রয়োগগুলি দ্বারা নির্দিষ্ট ব্যবহারের বিশৃঙ্খলা এড়াতে পারি, যাতে এই পদগুলি আসলে কিছু বোঝায়:

  • লোকগুলির একটি সারি লাইনে অপেক্ষা করে এবং একে একে পরিবেশন করা হয়। আরও লোকেরা লেজের কাতারে যোগ দেয়। পরিষেবা এগিয়ে যাওয়ার সাথে সাথে প্রত্যেকে অপেক্ষা করে এবং পরিষেবার সময়টি পরিবর্তিত হবে বলে আশা করা হচ্ছে। আপনি মোট কত জন পরিবেশন করা হয় তা বলতে পারেন speak
  • লোকেদের একটি স্রোত , উদাহরণস্বরূপ একটি দরজা দিয়ে একটি বিল্ডিং রেখে, একে একে পরিবেশন করা হয় না, তারা কেবলমাত্র কম-বেশি স্থির হারে প্রস্থানস্থানটি পাস করে। বিলম্ব আশা করা হয় না এবং ভাল সহ্য করা হয় না। আপনি জনগণের হারের কথা বলতে পারেন: প্রতি সেকেন্ডে একজন।

এই পদগুলির উদ্দেশ্য। তারা রূপক। (অন্য কিছুর মতো) (শাহ্! আপনি গল্পটি নষ্ট করবেন!)


2

একটি সারি একটি স্রোতের চেয়ে উচ্চ স্তরের ধারণা। একটি সারিটির মূল উপাদানগুলি হ'ল একটি বার্তা / অবজেক্ট, যা একটি সুসংগত (সাধারণত টাইপ করা হয়) ডেটা স্ট্রাকচার যা ভোক্তা নিজের দ্বারা ব্যাখ্যা করতে পারে। অন্যদিকে, একটি স্ট্রিমের গোড়ায় , (সাধারণত স্থির আকারের) বিট / বাইট / অক্ষর থাকে, যা নিজে থেকে অ্যাপ্লিকেশনটির কাছে সাধারণত অর্থহীন। এই অক্ষরগুলির একটি অনুক্রম একটি "বার্তা" রচনা করতে পারে, তবে একটি স্ট্রিম এপিআই অক্ষরগুলির ক্রমকে সংবেদনশীল খণ্ডে বিভক্ত করতে অ্যাপ্লিকেশনটিতে ফেলে দেয়।

একটি স্ট্রিম এপিআই সাধারণত আংশিক পড়তে এবং লেখার অনুমতি দেয়, যদি স্ট্রিম বাফারগুলি পূর্ণ থাকে এবং অন্য দিকটি পড়তে / লেখেন না; অ্যাপ্লিকেশনগুলি যেগুলি সারিগুলি পরিচালনা করে সাধারণত সারিগুলি অভ্যন্তরীণভাবে পরিচালনা করে এমনটি প্রত্যাশা করে।

একটি সারি উপরে একটি সারি প্রয়োগ করা যেতে পারে, বার্তা ফ্রেমিং প্রয়োগ করে এটি করা হয়। উদাহরণস্বরূপ, টিসিপি একটি স্ট্রিম ইন্টারফেস সরবরাহ করে, এইচটিটিপিটি টিসিপির শীর্ষে নির্মিত এবং সামগ্রী-দৈর্ঘ্য / খণ্ডিত স্থানান্তর এনকোডিং ব্যবহার করে বার্তা ফ্রেমিং যুক্ত করে। একটি HTTP সংযোগ API এর ব্যবহারকারীরা HTTP অনুরোধগুলিতে বিভক্ত HTTP সংযোগ স্ট্রিমের সাথে চুক্তি থেকে বিমূর্ত হন।

অন্যদিকে, সাধারণত, কোনও সারির উপরে একটি স্ট্রিম এপিআই প্রয়োগ করা কম বোঝায় না, কারণ বার্তা ফ্রেমিংয়ের পরিচালনা করা অপ্রয়োজনীয় ওভারহেড যুক্ত করে।


সারি করার জন্য যে এপিআই সাধারণত একবারে একটি একক উপাদান উত্পাদন / গ্রহণ করে তা যুক্তিযুক্ত, স্ট্রিমিং এপিআই সাধারণত একবারে একাধিক "শব্দ" উত্পন্ন / গ্রহণ করে। যদিও আমি সম্মত হই, এটি নির্ধারণকারী বৈশিষ্ট্যটি হ'ল একটি সারি উচ্চ স্তরের এবং কাঠামোগত, যখন একটি স্ট্রিম নিম্ন স্তরের এবং কাঠামো-কম।
আলেক্সি

0

ফাংশনাল প্রোগ্রামিং ল্যাঙ্গুয়েজে (যেমন স্কেলা), এবং অন্যান্য ভাষাও সম্ভবত স্ট্রিমগুলি কার্যকরী তালিকার মতো এবং সেগুলি সারি। আমার লক্ষ্য করা উচিত, তবে সারিগুলি এক জোড়া তালিকাগুলি ব্যবহার করে বাস্তবে প্রয়োগ করা যেতে পারে । স্কালায় এবং সম্ভবত অন্য কোথাও, একটি স্ট্রিম কেবল একটি অলস তালিকা - আরও সুনির্দিষ্টভাবে, তালিকার লেজটি একটি lazy val

কার্যকরী স্ট্রিমগুলি কাতারগুলির সাথে তালিকার বিপরীতে কিছু সাদৃশ্য ভাগ করে নিতে পারে, যাতে আপনি সেগুলি এমনভাবে ব্যবহার করতে পারেন যাতে আপনি প্রবাহের শিরোনামের কোনও উল্লেখ রাখেন না - তবে আপনাকে সতর্কতা অবলম্বন করতে হবে: https: // stackoverflow.com/a/5159356/3096687 । এটি কিছুটা কাতারে ডিলিউ কলের সাথে সামঞ্জস্যপূর্ণ (যদিও কোনও স্রোতের ক্ষেত্রে আপনি এটিকে নিখুঁতভাবে করেন: http://daily-scala.blogspot.com/2010/01/streams-2-stream-conferences.html )।


-1

ধারাবাহিকভাবে বা সমান্তরাল বা বাল্কের ডেটাগুলির অসীম ক্রম উত্পাদন এবং গ্রাস করার জন্য স্ট্রিম একটি ধারণা / কাঠামো। ক্যো একটি ডেটা স্ট্রাকচার যার মাধ্যমে স্ট্রিম প্রয়োগ করা যেতে পারে। কেবল তালিকা বা সিকের মতো যার মাধ্যমে স্ট্রিম প্রয়োগ করা যেতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.