সম্মতি, সমান্তরালতা এবং অ্যাসিনক্রোনাস পদ্ধতির মধ্যে পার্থক্য কী?


177

সমঝোতা পৃথক থ্রেডে সমান্তরালে দুটি কাজ চলছে। যাইহোক, অ্যাসিনক্রোনাস পদ্ধতিগুলি সমান্তরালভাবে চালিত হয় তবে একই 1 টি থ্রেডে। এটি কীভাবে অর্জিত হয়? এছাড়াও, সমান্তরালতা সম্পর্কে কি?

এই 3 টি ধারণার মধ্যে পার্থক্য কী?


8
"অ্যাসিনক্রোনাস" শব্দটির অর্থ অনেকগুলি ভিন্ন ভিন্ন জিনিস হতে পারে। এই শর্তাদি সম্পর্কিত, তবে তারা জিনিসগুলির বিভাজন সেটগুলিকে বর্ণনা করে না। অর্থগুলি ওভারল্যাপ হয় এবং পরিস্থিতি অনুসারে পৃথক হয়।
পয়েন্টটি

2
সুতরাং প্রথম সম্মতি একই সময়ে দুই বা ততোধিক প্রক্রিয়া চলমান। উপায় যে বাইরে, সমবর্তী হতে সমান্তরাল হচ্ছে না। সমান্তরাল প্রক্রিয়াগুলিতে দুটি বা ততোধিক কোর প্রয়োজন হয় যেখানে সমবর্তী প্রক্রিয়াগুলি একটি একক কোরকে ভাগ করতে পারে।
রিক ও'শিয়া

উত্তর:


139

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

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

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

ব্যবহারকারীর দৃষ্টিকোণ থেকে এটি মাল্টিটাস্কিংয়ের মতো প্রদর্শিত হয় তবে তা হতে পারে না।


সম্পাদনা

এটি সম্ভবত যুক্তিযুক্ত যে অনেক বাস্তবায়নে একটি অ্যাসিনক্রোনাস পদ্ধতি কলের ফলে একটি থ্রেড ছড়িয়ে যায় তবে এটি অপরিহার্য নয়, এটি সত্যিকার অর্থে পরিচালিত অপারেশনটির উপর নির্ভর করে এবং কীভাবে সিস্টেমটিতে প্রতিক্রিয়াটি অবহিত করা যায়।


34
আমি যুক্তি দিচ্ছি যে আপনার প্রথম অনুচ্ছেদে আপনার সমান্তরালতা এবং একমত হয়েছে rency সংক্ষিপ্ত অর্থ মৃত্যুদণ্ডের একাধিক থ্রেড পরিচালনা করা বোঝায়, যেখানে সমান্তরালতা আরও সুনির্দিষ্টভাবে হয়, একই সাথে মৃত্যুদণ্ড কার্যকর করার একাধিক থ্রেড রয়েছে। সমঝোতা বিস্তৃত শব্দ যা সমান্তরালতাকে অন্তর্ভুক্ত করতে পারে।
মার্ক এইচ

7
যদিও দুটি শব্দ দুটি একইরকম এবং বিভ্রান্ত হতে পারে (এবং প্রায়শই হয়) তবে তাদের বিভিন্ন সংজ্ঞা রয়েছে: সমকালীন = একই সাথে বিদ্যমান, ঘটছে বা সম্পন্ন হয়েছে। সমান্তরাল = একই বা বিভিন্ন ডিভাইস দ্বারা একসাথে একাধিক ক্রিয়াকলাপের আপাত বা আসল কার্য সম্পাদনের সাথে সম্পর্কিত। যেমন আপনি দেখতে পাচ্ছেন সমান্তরাল অগত্যা বোঝা যাচ্ছে না তবে এটি কেবল সমবর্তী হিসাবে উপস্থিত হতে পারে। দিনের শেষে, শব্দগুলি প্রায়শই পরস্পরের পরিবর্তে ব্যবহৃত হয় এবং এন দেবের সাথে একটি ঘর সম্ভবত আপনি এন + 1 সংজ্ঞা পাবেন;)
লাজার

3
@ মেহরদাদ আপনি যদি অভিধানের শব্দের সংজ্ঞাগুলি বিপণনের উপকরণগুলিতে তাদের ব্যবহারের ভিত্তিতে স্থাপন করতে চলেছেন তবে আমি মনে করি আপনি কিছুটা অসুবিধায় নিজেকে খুঁজে পেতে পারেন।
লাজার

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

2
@ ফ্র্যাঙ্ক্র্যাডোকাজ এর ঠিক আছে। সমকালীন মানে এই যে প্রোগ্রামটি ইউনিটগুলিতে বিভক্ত হতে পারে (ইউনিটগুলি মূলত থ্রেড হওয়া ইউনিট) যা কোনও ক্রমে চালানো যেতে পারে এবং নির্ধারিত ফলাফল হতে পারে। সমান্তরাল অর্থ এই ইউনিটগুলি / থ্রেডগুলি একই সময়ে একাধিক প্রসেসরের উপর আক্ষরিকভাবে পরিচালিত হচ্ছে।

89

সংক্ষেপে,

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

মনে রাখবেন যে সংহত এবং সমান্তরালতা একই জিনিস নয়।

সমান্তরাল বনাম সমান্তরালতার মধ্যে পার্থক্য

এখন সম্মতি এবং সমান্তরালতার মধ্যে উল্লেখযোগ্য পার্থক্য তালিকাভুক্ত করা যাক।

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

কনকুরেনসি হ'ল স্বাধীনভাবে সম্পাদনকারী প্রক্রিয়াগুলির রচনা, অন্যদিকে সমান্তরালতা (সম্ভবত সম্পর্কিত) গণনাগুলির একযোগে সম্পাদন।

কনকুরেন্সি হ'ল একবারে প্রচুর জিনিস নিয়ে কাজ করার। সমান্তরালতা হ'ল একবারে প্রচুর জিনিস করা।

একটি অ্যাপ্লিকেশন সমকালীন হতে পারে - তবে সমান্তরাল নয়, যার অর্থ এটি একই সময়ে একাধিক টাস্ক প্রসেস করে তবে একই সাথে তাত্ক্ষণিকভাবে দুটি কার্য সম্পাদন করে না।

একটি অ্যাপ্লিকেশন সমান্তরাল হতে পারে - তবে সমবর্তী নয়, যার অর্থ এটি একই সময়ে মাল্টি-কোর সিপিইউতে কোনও টাস্কের একাধিক উপ-কার্যগুলি প্রক্রিয়া করে।

কোনও অ্যাপ্লিকেশন না সমান্তরাল হতে পারে - না সমবর্তী হতে পারে, যার অর্থ এটি একযোগে সমস্ত কাজ একবারে প্রক্রিয়াজাত করে।

একটি অ্যাপ্লিকেশন উভয় সমান্তরাল - এবং সমবর্তী হতে পারে, যার অর্থ এটি একই সময়ে মাল্টি-কোর সিপিইউতে একযোগে একাধিক কাজ প্রক্রিয়া করে।

concurrency

যখন আমরা ন্যূনতম দুটি কাজ বা তার বেশি বিষয়ে কথা বলি তখন কনকুরન્સી মূলত প্রযোজ্য। যখন কোনও অ্যাপ্লিকেশন একই সাথে কার্যত দুটি কার্য সম্পাদন করতে সক্ষম হয়, আমরা একে সমবর্তী অ্যাপ্লিকেশন বলি। যদিও এখানে কাজগুলি একই সাথে দেখায় তবে মূলত তারা তা করতে পারে না। তারা অপারেটিং সিস্টেমের সিপিইউ-টাইম-স্লাইসিং বৈশিষ্ট্যটির সুবিধা গ্রহণ করে যেখানে প্রতিটি টাস্ক তার কাজের অংশ করে এবং তারপরে অপেক্ষার স্থানে যায়। যখন প্রথম টাস্ক অপেক্ষার স্থানে থাকে তখন সিপিইউকে তার কাজের অংশটি শেষ করার জন্য দ্বিতীয় টাস্কে নিয়োগ দেওয়া হয়।

কাজের অগ্রাধিকারের ভিত্তিতে অপারেটিং সিস্টেম, এইভাবে, সিপিইউ এবং অন্যান্য কম্পিউটিং সংস্থাগুলি যেমন মেমরির নিয়োগ করে; সমস্ত কাজ ঘুরিয়ে ঘুরিয়ে তাদের সম্পূর্ণ করার সুযোগ দিন। ব্যবহারকারীর সমাপ্তির জন্য, মনে হচ্ছে যে সমস্ত কাজ সমান্তরালভাবে চলছে। এটাকে একত্রীকরণ বলা হয়।

উপমা

সমান্তরালতা বিদ্যমান থাকতে দুটি কার্য প্রয়োজন হয় না। এটি আক্ষরিকভাবে প্রতিটি টাস্কে বা উপ-টাস্কের জন্য একটি কোর বরাদ্দ করে একই সাথে সিপিইউয়ের মাল্টি-কোর অবকাঠামো ব্যবহার করে কার্যগুলির একাধিক অংশ বা একাধিক টাস্কগুলি চালায়।

সমান্তরালতা একাধিক প্রসেসিং ইউনিট সহ প্রয়োজনীয় হার্ডওয়্যার প্রয়োজন। একক কোর সিপিইউতে আপনি সামঞ্জস্য পেতে পারেন তবে সমান্তরালতা পাবেন না।

অ্যাসিনক্রোনাস পদ্ধতি

এটি কনকুরન્સી এবং প্যারালালিজমের সাথে সম্পর্কিত নয়, অবিচ্ছিন্নতাটি সমবর্তী বা সমান্তরাল টাস্কিংয়ের ছাপ উপস্থাপন করতে ব্যবহৃত হয় তবে কার্যকরভাবে একটি অ্যাসিনক্রোনাস পদ্ধতি কলটি এমন একটি প্রক্রিয়ার জন্য ব্যবহৃত হয় যা বর্তমান অ্যাপ্লিকেশন থেকে দূরে কাজ করা দরকার এবং আমরা চাই না অপেক্ষা করুন এবং প্রতিক্রিয়াটির অপেক্ষায় আমাদের অ্যাপ্লিকেশনটিকে ব্লক করুন।


2
খুব উপকারী. ধন্যবাদ
নেহা

আমি এখনও অ্যাসিঙ্ক বনাম সম্মতি সম্পর্কে বিভ্রান্ত। আমি "চলমান কার্যগুলি অবিচ্ছিন্নভাবে" এবং "চলমান কার্যগুলি একযোগে" ব্যবহৃত হয়েছে বলে শব্দটি দেখেছি। অ্যাসিঙ্ক্রোনাস এবং চলমান কাজগুলি একই সাথে বোঝা যাচ্ছে?
মুনড্রা

1
@ মুন্ড্রা অ্যাসিঙ্ক টাস্কটি একক থ্রেডে চলেছে, মাল্টিথ্রেডিং সম্পর্কিত কোনও কিছুই নেই। অ্যাসিঙ্ক টাস্কটি আপনার অ্যাপ্লিকেশনটির বাইরে একটি বাহ্যিক প্রক্রিয়াতে একটি টাস্ক প্রেরণ করে ... যেমন ডাটাবেস, ফাইল রিডার ... এইগুলি আইও প্রক্রিয়া হয় তখন আইও প্রক্রিয়া শেষ হয়ে গেলে কোনও ক্রিয়া সম্পাদনের জন্য প্রক্রিয়াতে একটি কলব্যাক যোগ করা হয়। আমি যে বিষয়ে নিশ্চিত নই তা হ'ল কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজে কিছু "অ্যাসিঙ্ক" বৈশিষ্ট্য রয়েছে যা আপনি যখন
অ্যাসিঙ্ক টাস্ককে

56

সংঘবদ্ধতা হ'ল একাধিক কার্যের সম্পাদন আন্তঃবাহিত হয়, পরিবর্তে প্রতিটি কাজ একের পর এক ক্রমান্বয়ে সম্পাদিত হয়।

সমান্তরালতা হয় যখন এই কাজগুলি সমান্তরালভাবে বাস্তবায়িত হয়।

এখানে চিত্র বর্ণনা লিখুন


অ্যাসিনক্রোনি একটি পৃথক ধারণা (যদিও কিছু প্রসঙ্গে সম্পর্কিত)। এটি এমন একটি ঘটনাকে বোঝায় যে একটি ইভেন্ট অন্য সময়ে ঘটতে পারে (সিনক্রোনিতে নয়) অন্য ইভেন্টে। নীচের চিত্রগুলি একটি সিনক্রোনাস এবং অ্যাসিঙ্ক্রোনাস এক্সিকিউশনের মধ্যে পার্থক্য কী তা চিত্রিত করে, যেখানে অভিনেতারা বিভিন্ন থ্রেড, প্রক্রিয়া বা এমনকি সার্ভারের সাথে মিল রাখতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


6
সহজ, কার্যকর চিত্রণ।
কন্টাক্টমেট

1
সংমিশ্রণি কি অ্যাসিনক্রোনির মতো?
টি

1
এই 2 ধারণাটি খুব নিকটে, প্রকৃতপক্ষে, তবে একই নয়। অনুশীলনে, অ্যাসিঙ্ক্রোনির ক্রিয়াগুলির মধ্যে কথোপকথনের সাথে আরও জড়িত (বলুন এ ও বি), যেখানে একটি (বি) অপর (এ) দ্বারা ট্রিগার হয় এবং দ্বিতীয়টি প্রথমটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবে কিনা। সংক্ষিপ্ত ক্রিয়াকলাপ এমন ক্রিয়াকলাপগুলির জন্য আরও সাধারণ শর্ত যা একে অপরের সাথে সম্পর্কিতও হতে পারে না এবং সেগুলি ক্রমে মৃত্যুদন্ড কার্যকর করা হয় বা তাদের ফাঁসি কার্যকর করা হয় না।
ডিমোস

1
সুতরাং অ্যাসিঙ্ক্রোনি বেশিরভাগটি ব্লক করা এবং অবরুদ্ধকরণ সম্পর্কে
ড্যানিয়েল

15

প্রত্যেকেরই অসমীয়াতকে সমান্তরালতা বা একত্রীকরণের সাথে সংযুক্ত করতে সমস্যা হচ্ছে কারণ অ্যাসিঙ্ক্রোনাস সমান্তরাল বা একত্রীকরণের কোনও প্রতিশব্দ নয়। এটি সিঙ্ক্রোনাসের একটি প্রতিশব্দ। যা কেবলমাত্র যদি ইঙ্গিত করে যে কোনও ক্ষেত্রে, থ্রেডগুলি, অন্য কোনও কিছুর সাথে সিঙ্ক করা হবে, এই ক্ষেত্রে অন্য থ্রেড।


13

একাধিক পরিস্থিতি রয়েছে যেখানে সম্মতিতে ঘটতে পারে:

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

সমান্তরালতা - এর অর্থ হল যে আপনার প্রোগ্রামটি একই সাথে কাজগুলিকে টুকরো টুকরো করে কাজগুলি সম্পাদন করতে মাল্টি-কোর মেশিনগুলির হার্ডওয়্যারকে উপকৃত করে, যার প্রত্যেকটি পৃথক কোরের উপর মৃত্যুদন্ড কার্যকর করা হয়। এটি শাওয়ারে গাওয়ার মতো: আপনি ঠিক একই সময়ে দুটি জিনিস করছেন।

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


এগুলি সত্যিই ভাল উপমা! ধন্যবাদ। একথা বলা কি ন্যায়সঙ্গত আপনার মাল্টিথ্রেডিং সংজ্ঞা দিয়ে সংজ্ঞায়িত করা যায়? সুতরাং একত্রীকরণ = একক কোরে মাল্টিথ্রেডিং যা দেখে মনে হচ্ছে এটি একই সাথে ঘটছে তবে এটি কি সত্যিই দ্রুত পিছনে পিছনে স্যুইচ করছে?
wongz

3

concurrency

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

উপমা

সমান্তরালতা বলতে বোঝায় যে কোনও অ্যাপ্লিকেশন তার কাজগুলিকে ছোট ছোট সাবটাস্কে বিভক্ত করে যা সমান্তরালভাবে প্রক্রিয়া করা যেতে পারে, উদাহরণস্বরূপ, একই সময়ে একাধিক সিপিইউতে।

কনক্যুরન્સી বনাম সমানতালেবতার বিবরণ

আপনি দেখতে পাচ্ছেন যে, কোনও অ্যাপ্লিকেশন কীভাবে এটি পরিচালনা করে একাধিক কার্য পরিচালনা করে তা সম্পর্কিত চুক্তি সম্পর্কিত conc কোনও অ্যাপ্লিকেশন একই সময়ে একটি কাজ (ক্রমানুসারে) প্রক্রিয়া করতে পারে বা একই সময়ে একসাথে একসাথে (একই সাথে) কাজ করতে পারে।

অন্যদিকে সমান্তরালতা, কীভাবে একটি অ্যাপ্লিকেশন প্রতিটি স্বতন্ত্র কাজ পরিচালনা করে তার সাথে সম্পর্কিত। কোনও অ্যাপ্লিকেশন কাজটি শুরু থেকে শেষ পর্যন্ত ক্রমিকভাবে প্রক্রিয়া করতে পারে, বা কাজটিকে সাবটাস্কে বিভক্ত করে দেয় যা সমান্তরালভাবে শেষ করা যায়।

আপনি দেখতে পাচ্ছেন যে কোনও অ্যাপ্লিকেশন সমান্তরাল হতে পারে তবে সমান্তরাল নয়। এর অর্থ এটি একই সাথে একাধিক টাস্ক প্রসেস করে তবে টাস্কগুলি সাব টাস্কে বিভক্ত হয় না।

একটি অ্যাপ্লিকেশন এছাড়াও সমান্তরাল হতে পারে তবে একসাথে নয়। এর অর্থ হ'ল অ্যাপ্লিকেশনটি একবারে কেবলমাত্র একটি টাস্কে কাজ করে এবং এই টাস্কটি সাব টাস্কে বিভক্ত হয়ে যায় যা সমান্তরালে প্রক্রিয়াজাত করা যায়।

অতিরিক্তভাবে, একটি অ্যাপ্লিকেশন না হয় সমবর্তী বা সমান্তরাল হতে পারে। এর অর্থ এটি একটি সময়ে কেবলমাত্র একটি টাস্কে কাজ করে এবং সমান্তরাল সম্পাদনের জন্য টাস্কটি কখনও কখনও সাবটাস্কে বিভক্ত হয় না।

অবশেষে, একটি অ্যাপ্লিকেশন একই সাথে সমান্তরাল এবং সমান্তরাল উভয়ই হতে পারে, কারণ এটি উভয় একই সময়ে একাধিক টাস্কে কাজ করে এবং প্রতিটি কাজ সমান্তরাল সম্পাদনের জন্য সাবটাস্কে ভেঙে দেয়। তবে কম্পিউটারের সিপিইউগুলি ইতিমধ্যে এককভাবে সামঞ্জস্য বা সমান্তরালতা নিয়ে যুক্তিযুক্তভাবে ব্যস্ত থাকায় সামঞ্জস্য এবং সমান্তরালতার কিছু সুবিধা এই দৃশ্যে হারিয়ে যেতে পারে। এটির সংমিশ্রণটি কেবল সামান্য পারফরম্যান্স লাভ বা এমনকি কর্মক্ষমতা হ্রাস পেতে পারে। অন্ধভাবে সমান্তরাল সমান্তরাল মডেল গ্রহণ করার আগে আপনি বিশ্লেষণ এবং মাপকাঠিটি নিশ্চিত করুন।

থেকে http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html


3

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

সমসাময়িক: সমান্তরালতা ছাড়া একত্রে সামঞ্জস্যতা থাকতে পারে না (সিমুলেটেড বা বাস্তব, যেমনটি আমি উপরে ব্যাখ্যা করেছি) তবে এই শব্দটি বিশেষতঃ এই বিষয়টির প্রতি কেন্দ্রীভূত করে যে দুটি সিস্টেম একই সময়ে কোনও সময়ে একই উত্স অ্যাক্সেস করার চেষ্টা করবে । এটি আপনাকে জোর করে যে বিষয়টি মোকাবেলা করতে হবে তার উপর জোর দেয়।

অ্যাসিনক্রোনাস : সকলেই এই কথাটি ঠিক বলেছে যে অ্যাসিনক্রোনাস সমান্তরালতার সাথে সম্পর্কযুক্ত নয়, তবে এটি তার পথ সুগম করে (জিনিসগুলি সমান্তরাল করার জন্য বা বোঝার ভার আপনার উপর পড়ে - পড়া চালিয়ে যান)।

"অ্যাসিনক্রোনাস" সমান্তরালতার প্রতিনিধিত্বকে বোঝায় যা সাধারণত প্যারালালিজমের সাথে জড়িত তিনটি মৌলিক বিষয়কে আনুষ্ঠানিকভাবে রূপ দেয়: 1) টাস্কের সূচনাটি ব্যাখ্যা করে (কখন এটি শুরু হয় এবং কোন পরামিতিগুলি পায়), 2) এটি শেষ হওয়ার পরে কী করা উচিত এবং 3) কোডটি অন্তঃসত্ত্বা করে কী করা উচিত।

তবে এটি এখনও কেবল বাক্য গঠন (সাধারণত এটি কলব্যাক পদ্ধতি হিসাবে উপস্থাপিত হয়)। দৃশ্যের আড়ালে, অন্তর্নিহিত সিস্টেমটি কেবলমাত্র সিদ্ধান্ত নিতে পারে যে এই তথাকথিত "কাজগুলি" কোডটি কেবলমাত্র টুকরো টুকরো টুকরো টুকরো টুকরো করা যতক্ষণ না এটি বর্তমানে সম্পাদনকারী কোডটি শেষ করে দেয়। এবং তারপরে এটি তাদের একের পর এক আনপাইল করে এবং ক্রমান্বয়ে কার্যকর করে। অথবা না. এটি প্রতি টাস্ক প্রতি থ্রেড তৈরি করতে পারে এবং এগুলিকে সমান্তরালে চালাতে পারে। কে পাত্তা দেয়? এই অংশটি ধারণার অন্তর্ভুক্ত নয়;)


2

এখানে সাফ করার জন্য কিছুটা শব্দার্থবিজ্ঞান রয়েছে:

সংহত বা সমান্তরালতা সম্পদ বিতর্ক একটি প্রশ্ন , যেখানে অ্যাসিঙ্ক্রোনাস নিয়ন্ত্রণ প্রবাহ সম্পর্কে ।

বিভিন্ন প্রক্রিয়া (বা তাদের উপাদান ক্রিয়াকলাপ ) অ্যাসিনক্রোনাস হিসাবে অভিহিত করা হয়, যখন তাদের প্রসেসিংয়ের ক্রমটির কোনও প্রতিরোধমূলক প্রয়োগ নেই ; অন্য কথায়, একটি সম্ভাবনা রয়েছে যে এগুলির যে কোনও একটি সময়ে যে কোনও সময় প্রক্রিয়া করা যেতে পারে টি। সংজ্ঞা অনুসারে, একাধিক প্রসেসর (যেমন সিপিইউ বা ব্যক্তি) একই সাথে তাদের বেশ কয়েকটি প্রক্রিয়াজাতকরণ সম্ভব করে তোলে; একটি একক প্রসেসরে, তাদের প্রসেসিং আন্তঃলিবিযুক্ত (যেমন থ্রেডস)।

অ্যাসিনক্রোনাস পদ্ধতি বা ক্রিয়াকলাপগুলি যখন সংস্থানগুলি ভাগ করে নেয় তখন তাকে সমকালীন বলা হয় ; সংক্ষিপ্ত বিবরণ কোনও নির্দিষ্ট সময়ে বিতর্ক হওয়ার সুনির্দিষ্ট সম্ভাবনা টি। সমান্তরালতা তুচ্ছভাবে নিশ্চিত করা হয় যখন কোনও সংস্থান ভাগ করা হয় না (যেমন বিভিন্ন প্রসেসর এবং স্টোরেজ); অন্যথায় সংক্ষিপ্ত নিয়ন্ত্রণ নিয়ন্ত্রণ করা উচিত।

অতএব একটি অ্যাসিনক্রোনাস প্রক্রিয়া বা অপারেশন সমান্তরাল বা অন্যদের সাথে একযোগে প্রক্রিয়াজাত করা যেতে পারে।


2

কনক্যুরન્સી অর্থ একই সময়ে একাধিক কাজ সম্পাদন করা তবে একই সাথে অগত্যা নয়। যখন আপনাকে একাধিক টাস্ক সম্পাদন করতে হয় তবে আপনার যদি একক সংস্থান থাকে তবে আমরা সম্মতিতে যাই। একক মূল পরিবেশে কনটেক্সট স্যুইচিংয়ের মাধ্যমে সম্মতি অর্জন করা হয়।

সমান্তরালতা হ'ল একসাথে একাধিক টাস্ক সম্পাদন করার মতো আপনি একসাথে গান করতে এবং স্নান করতে পারেন। এখন আপনি সমান্তরালে কাজ করছেন।

অ্যাসিঙ্ক্রোনাস এমন একটি জিনিস যা অ্যাসিঙ্ক্রোনাস মডেলের থ্রেড এক্সিকিউশন সম্পর্কিত যখন কোনও কাজ সম্পাদন হয়, আপনি পূর্ববর্তীটির জন্য অপেক্ষা না করেই অন্য কোনও কার্যে স্যুইচ করতে পারেন।

অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং আমাদের সমঝোতা অর্জনে সহায়তা করে। বহু-থ্রেডযুক্ত পরিবেশে অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং সমান্তরালতা অর্জনের একটি উপায়।


2

"সিঙ্ক এবং অ্যাসিঙ্ক হ'ল প্রোগ্রামিং মডেল Con কাজগুলি সম্পাদন করার পদ্ধতি সমকালীন এবং সমান্তরাল ..."। সূত্র: https://medium.com/better-programming/sync-vs-async-vs-concurrent-vs-parallel-5754cdb60f66

অন্য কথায়, সিঙ্ক এবং অ্যাসিঙ্ক বর্ণনা করে যে কোনও ফাংশন কল করার সময় আপনার প্রোগ্রামটি কীভাবে সঞ্চালিত হয় (এটি কি অপেক্ষা করবে বা এটি চালানো অব্যাহত থাকবে?), যখন সমকালীন এবং সমান্তরালভাবে বর্ণনা করা হয় যে কোনও ফাংশন (কোনও টাস্ক) কীভাবে কার্যকর করা হবে (সমবর্তী = সম্ভবত এখানে কার্যকর করা হবে) একই সময়ে, সমান্তরাল = কার্যকরভাবে একই সময়ে কার্যকর করা)।


মাধ্যমটি কোনও উত্স নয়, এটি কোনও অন্যের দ্বারা তাঁর কোনও বিষয় সম্পর্কে (ভুল) বোঝার কথা বলা একটি নিবন্ধ, এটি তাকে / তাকে কোনও কর্তৃত্ব বানায় না।
মোহা সর্বশক্তিমান উট

1
এটি উত্সাহ, তাই উত্স। এখানে বেশিরভাগ উত্তর কোনও ক্ষেত্রে কর্তৃপক্ষের দ্বারা লিখিত নয় এবং লেখক যে ব্যাখ্যা দিয়েছেন তা যথেষ্ট ভাল।
পেড্রো বোচ্যাট

স্ট্যাকওভারফ্লোতে আপনার কমপক্ষে একটি ভোটিং সিস্টেম রয়েছে এবং এটি পেশাদারদের একটি সম্প্রদায়। মিডিয়ামে যে কেউ কিছু লিখতে পারেন। এটি দুজনের মধ্যে সুষ্ঠু তুলনা নয়।
মোহা সর্বশক্তিমান উট

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

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

1

কনসিউরেনসি ভিএস প্যারালাইলিজম: একযোগে এক সময়ে কেবল একটি কাজ করা যেতে পারে। উদাহরণ: একক সিপিইউ প্রসেসরের সমান্তরালতা এক পর্যায়ে আমরা একাধিক কাজ করতে পারি। উদাহরণ: ডুয়াল কোর বা মাল্টি কোর প্রসেসর


1

এখানে আমি কয়েকটি উদাহরণ দিয়ে ব্যাখ্যা করি


উপমা

হাজার হাজার শারীরিক এবং যৌক্তিক থ্রেডে একই ব্লক কোড (একেএ কার্নেল ) প্রক্রিয়াকরণের জন্য একটি জিপিইউ সমান্তরাল প্রক্রিয়াকরণ ব্যবহার করে । আদর্শভাবে, প্রক্রিয়াটি একই সাথে সমস্ত থ্রেডের জন্য শুরু হয় এবং শেষ হয়। হাইপারথ্রেডিং ছাড়াই একটি সিপিইউ কোর সমান্তরাল প্রক্রিয়াকরণ করতে পারে না।

দ্রষ্টব্য: আমি আদর্শ বলেছি কারণ আপনি যখন 6M থ্রেড সহ একটি হার্ডওয়ারে 7M কল আকারের কার্নেলটি চালান, তখন প্রতিটি 6M থ্রেড সমান্তরালে সমস্ত 6 এম থ্রেডে একই কোডটি দু'বার চালাতে হয়।

  • এক কার্নেল (কোডের একটি টুকরা) একাধিক প্রসেসরের উপর চালিত হয়
  • এককালে
  • সঙ্গে একটি একক সঞ্চালনের ক্রম (ক কার্নেল , সমস্ত থ্রেডের মধ্যে একই জিনিস করে হবে যাতে "শাখাবিন্যাস" বা গুলি কারণ তারা NOPs (নো-অপারেশন প্রচুর তৈরি করে আয়তন বহুলাংশে সম্পদ গ্রাস করবে এর সকল লিপি সিঙ্ক্রোনাইজ করতে এড়িয়ে যাওয়া হয় "যদি"))
  • মূলত গতি মারাত্মকভাবে বৃদ্ধি
  • আপনি যা করতে পারেন তা মারাত্মকভাবে সীমাবদ্ধ করে
  • হার্ডওয়্যার উপর অত্যন্ত নির্ভর করে

দ্রষ্টব্য: সমান্তরালতা জিপিইউয়ের মধ্যে সীমাবদ্ধ নয়।


concurrency

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

কেবল কোনও ব্যবহারকারী কোনও রেকর্ড আপডেট করে এবং অন্য ব্যবহারকারী একই সময়ে একই রেকর্ড মোছার কল্পনা করুন।

  • অনেক কাজ সম্পাদিত হয়
  • মধ্যে রিয়েল-টাইম (অথবা যখনই একটি অনুরোধ আসে)
  • সঙ্গে বিভিন্ন সঞ্চালনের সিকোয়েন্স (সমান্তরাল প্রক্রিয়াকরণে কার্নেল মতো সমবর্তী কর্ম বিভিন্ন জিনিস করতে পারেন, আপনি সম্ভবত সারিতে বা তাদের অগ্রাধিকার আছে)
  • মূলত গড় প্রতিক্রিয়ার সময়টি উন্নত করে কারণ # 2 টাস্কটির জন্য # 2 টাস্কের অপেক্ষা করতে হবে না
  • মূলত গণনার সময়কে ত্যাগ করে কারণ অনেকগুলি কাজ একই সাথে চলছে এবং সেখানে সীমিত সংস্থান রয়েছে
  • ভাগ করা সংস্থানগুলি সঠিকভাবে পরিচালনা করা দরকার যাতে এটি ডেডলকগুলিতে না চলে বা ডেটাটিকে দূষিত করে।

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


অসমনিয়ত

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

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

দ্রষ্টব্য: একটি async অপারেশন যা একযোগে সঞ্চালিত হয় (অর্থাত্ একবারে একাধিকবার) একটি যুগল অপারেশন।


দ্রষ্টব্য: সংমেত এবং অ্যাসিঙ্ক্রোনসী প্রায়শই একে অপরের সাথে বিভ্রান্ত হয়। কনকুরেন্সি বলতে সিস্টেমের বিভিন্ন অংশকে একে অপরের সাথে হস্তক্ষেপ না করে একসাথে কাজ করা বোঝায় (এই সমস্যাগুলি প্রায়শই তালা, সেমফোর্স বা মিটেক্সেস দিয়ে সমাধান করা হয়)। অ্যাসিঙ্ক্রোনসী হ'ল আপনি কীভাবে প্রতিক্রিয়া অর্জন করেন (যেমন থ্রেডিং)।

* দ্রষ্টব্য: অ্যাসিনক্রোনোসি এবং মাল্টিথ্রেডিং প্রায়শই একে অপরের সাথে বিভ্রান্ত হয়। অ্যাসিঙ্ক্রোনাস কোড অগত্যা একটি নতুন থ্রেড জড়িত না। এটি হার্ডওয়্যার অপারেশন হতে পারে বা স্টিফান একে খাঁটি অপারেশন হিসাবে বলে, এটি পড়ুন

উদাহরণস্বরূপ, নীচের ডাব্লুপিএফ + সি # কোডে, await Task.Run(()=> HeavyMethod(txt))একটি অ্যাসিক্রোনোসি সমস্যা সমাধান করছে, যখন textBox.Dispatcher.Invokeএকটি সহকারী সমস্যা সমাধান করছে:

private async void ButtonClick(object sender, RoutedEventArgs e)
{
    // run a method in another thread
    await Task.Run(()=> HeavyMethod(txt));

    // modify UI object in UI thread
    txt.Text = "done";
}

// This is a thread-safe method. You can run it in any thread
internal void HeavyMethod(TextBox textBox)
{
    while (stillWorking)
    {
        // use Dispatcher to safely invoke UI operations
        textBox.Dispatcher.Invoke(() =>
        {
            // UI operations outside of invoke will cause ThreadException
            textBox.Text += ".";
        });
    }
}

0

আমি এই ধারণাগুলির চারপাশে আপনার মাথা জড়িয়ে এটি সংক্ষিপ্ত এবং আকর্ষণীয় করে তুলছি।

সমান্তরাল বনাম সমান্তরাল - উপায়গুলি সম্পাদন করা হয়।

বাস্তব জীবনের উদাহরণ নিন: একটি চ্যালেঞ্জ রয়েছে যার জন্য আপনাকে দু'জনেই পুরো বিশাল কেক খেতে এবং একটি পুরো গান গাইতে হবে। আপনি সবচেয়ে দ্রুত যদি পুরো গানটি গায় এবং কেক শেষ করেন তবে আপনি জিতবেন। সুতরাং নিয়মটি হ'ল আপনি একসাথে গান করেন এবং খান । আপনি কীভাবে তা নিয়মের সাথে সম্পর্কিত নয়। আপনি পুরো কেক খেতে পারেন, তারপরে পুরো গানটি গাইতে পারেন, বা আপনি অর্ধেক কেক খেতে পারেন, তারপরে অর্ধেক গান গাইতে পারেন, আবার এটি করুন ইত্যাদি etc.

সমান্তরালতা একটি নির্দিষ্ট ধরণের সম্মতি যেখানে কাজগুলি সত্যই একই সাথে সম্পাদিত হয়। কম্পিউটার বিজ্ঞানে সমান্তরালতা কেবল মাল্টিকোর পরিবেশে অর্জন করা যায়।

সিঙ্ক্রোনাস বনাম অ্যাসিনক্রোনাস - প্রোগ্রামিং মডেল।

সিঙ্কে, আপনি কোডটি উপরে থেকে নীচে পর্যন্ত ক্রমান্বয়ে কার্যকর হওয়া পদক্ষেপ হিসাবে লিখবেন। একটি অ্যাসিঙ্ক প্রোগ্রামিং মডেলটিতে, আপনি কার্য হিসাবে কোড লেখেন, যা পরে একযোগে কার্যকর করা হয়। একযোগে কার্যকর করার অর্থ হ'ল সমস্ত কাজ সম্ভবত একই সাথে সম্পাদিত হয়।

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