অ্যাসিনক্রোনাস এবং সিঙ্ক্রোনাস এক্সিকিউশন এর মধ্যে পার্থক্য কী?
অ্যাসিনক্রোনাস এবং সিঙ্ক্রোনাস এক্সিকিউশন এর মধ্যে পার্থক্য কী?
উত্তর:
আপনি যখন কিছু সিঙ্ক্রোনজিক্যালি কার্যকর করেন, তখন অন্য কোনও কাজে যাওয়ার আগে আপনি এটি শেষ হয়ে যাওয়ার জন্য অপেক্ষা করেন। আপনি যখন অযৌক্তিকভাবে কোনও কাজ সম্পাদন করেন, এটি শেষ হওয়ার আগে আপনি অন্য কোনও কাজে যেতে পারেন।
বলা হচ্ছে, কম্পিউটারের প্রসঙ্গে এটি অন্য একটি "থ্রেড" তে কোনও প্রক্রিয়া বা টাস্ককে সম্পাদন করে into একটি থ্রেড হ'ল কমান্ডের একটি কোড (কোডের একটি ব্লক) যা কাজের একক হিসাবে বিদ্যমান। অপারেটিং সিস্টেম একাধিক থ্রেড পরিচালনা করতে পারে এবং কোনও থ্রেডকে কিছু কাজ করার পালা দেওয়ার জন্য প্রসেসরের সময়ের একটি টুকরো ("স্লাইস") বরাদ্দ করতে পারে। এর মূল অংশে (ক্ষমা ত্যাগ করা), একটি প্রসেসর কেবল কমান্ড কার্যকর করতে পারে, এটি একবারে দুটি জিনিস করার কোনও ধারণা নেই। অপারেটিং সিস্টেমটি বিভিন্ন থ্রেডে সময়ের স্লাইস বরাদ্দ করে এটিকে সিমুলেট করে।
এখন, আপনি যদি মিশ্রণে একাধিক কোর / প্রসেসর প্রবর্তন করেন, তবে জিনিসগুলি একই সাথে ঘটতে পারে। অপারেটিং সিস্টেমটি প্রথম প্রসেসরের একটি থ্রেডের জন্য সময় বরাদ্দ করতে পারে, তারপরে একই ব্লকটি অন্য থ্রেডে আলাদা প্রসেসরের উপর বরাদ্দ করতে পারে। এই সমস্ত কিছুই অপারেটিং সিস্টেমটিকে আপনার কার্য সম্পাদনের জন্য পরিচালনা করার সময় আপনি নিজের কোডটিতে যেতে পারেন এবং অন্যান্য কাজ করতে পারবেন about
আপনি যখন একই সাথে জিনিসগুলি করতে পারেন তখন জিনিসগুলি কীভাবে একসাথে বেঁধে যায় তার শব্দার্থবিজ্ঞানের কারণে অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং একটি জটিল বিষয়। এই বিষয়টিতে অসংখ্য নিবন্ধ এবং বই রয়েছে; একবার দেখুন!
সিঙ্ক্রোনাস / অ্যাসিনক্রোনাস মাল্টি-থ্রেডিংয়ের সাথে কিছুই করার নেই।
সিঙ্ক্রোনাস বা সিঙ্ক্রোনাইজ মানে কোনওভাবে "সংযুক্ত", বা "নির্ভরশীল"। অন্য কথায়, দুটি সিঙ্ক্রোনাস টাস্ক অবশ্যই একে অপরের সম্পর্কে সচেতন হতে হবে, এবং একটি কাজ অন্য কোনও উপর নির্ভরশীল কোনও উপায়ে কার্যকর করতে হবে, যেমন অন্য কাজটি শেষ না হওয়া পর্যন্ত শুরু হওয়া পর্যন্ত অপেক্ষা করা।
অ্যাসিঙ্ক্রোনাস অর্থ তারা সম্পূর্ণ স্বাধীন এবং উভয়কেই কোনওভাবেই অন্যভাবে বিবেচনা করা উচিত নয়, হয় দীক্ষায় বা সম্পাদনের ক্ষেত্রে।
সিঙ্ক্রোনাস (একটি থ্রেড):
1 thread -> |<---A---->||<----B---------->||<------C----->|
সিঙ্ক্রোনাস (বহু-থ্রেডযুক্ত):
thread A -> |<---A---->|
\
thread B ------------> ->|<----B---------->|
\
thread C ----------------------------------> ->|<------C----->|
অ্যাসিনক্রোনাস (একটি থ্রেড):
A-Start ------------------------------------------ A-End
| B-Start -----------------------------------------|--- B-End
| | C-Start ------------------- C-End | |
| | | | | |
V V V V V V
1 thread->|<-A-|<--B---|<-C-|-A-|-C-|--A--|-B-|--C-->|---A---->|--B-->|
অ্যাসিনক্রোনাস (বহু-থ্রেডেড):
thread A -> |<---A---->|
thread B -----> |<----B---------->|
thread C ---------> |<------C--------->|
<
, >
অক্ষর।|
প্রযুক্তিগতভাবে, সিঙ্ক্রোনাস / অ্যাসিনক্রোনাসের ধারণার থ্রেডগুলির সাথে আসলে কোনও সম্পর্ক নেই । যদিও, সাধারণভাবে, একই থ্রেডে চলমান অ্যাসিক্রোনাস কাজগুলি পাওয়া অস্বাভাবিক, তবে এটি সম্ভব, (উদাহরণগুলির জন্য নীচে দেখুন) এবং পৃথক থ্রেডে সিঙ্ক্রোনিকভাবে সম্পাদন করা দুটি বা আরও বেশি কাজ খুঁজে পাওয়া সাধারণ ... না, ধারণা সিঙ্ক্রোনাস / অ্যাসিনক্রোনাসের সম্পূর্ণরূপে দ্বিতীয় (পরবর্তী) কাজ শেষ হওয়ার আগে একটি দ্বিতীয় বা পরবর্তী কাজ শুরু করা যেতে পারে বা এটি অপেক্ষা করতে হবে কিনা তা সম্পূর্ণরূপে করতে হয়। এটাই সব। কোন থ্রেড (বা থ্রেড), বা প্রক্রিয়াগুলি, বা সিপিইউ, বা আসলে, কী হার্ডওয়্যার, টাস্ক [গুলি] কার্যকর করা হয় তা প্রাসঙ্গিক নয়। প্রকৃতপক্ষে, এই পয়েন্টটি করার জন্য আমি এটি দেখানোর জন্য গ্রাফিকগুলি সম্পাদনা করেছি।
অ্যাসিচক্রোনাস উদাহরণ:
ইঞ্জিনিয়ারিংয়ের অনেকগুলি সমস্যার সমাধান করার জন্য, সফ্টওয়্যারটি সামগ্রিক সমস্যাটিকে একাধিক স্বতন্ত্র কাজগুলিতে বিভক্ত করার জন্য তৈরি করা হয়েছে এবং তারপরে এগুলি অবিচ্ছিন্নভাবে কার্যকর করা যায়। একটি ম্যাট্রিক্স, বা একটি সীমাবদ্ধ উপাদান বিশ্লেষণ সমস্যা উল্টানো ভাল উদাহরণ। কম্পিউটিংয়ে একটি তালিকা বাছাই করা একটি উদাহরণ। কুইকোর্টের রুটিন, উদাহরণস্বরূপ, তালিকাকে দুটি তালিকায় বিভক্ত করে এবং সেগুলির প্রত্যেকটির উপরে একটি quicksort সম্পাদন করে, নিজেকে পুনরায় (quicksort) পুনরাবৃত্তি বলে। উপরের দুটি উদাহরণে, দুটি কাজ (এবং প্রায়শই ছিল) অ্যাসিঙ্ক্রোনালি সম্পাদন করতে পারে। তাদের আলাদা থ্রেডে থাকার দরকার নেই। এমনকি একটি সিপিইউযুক্ত একটি মেশিন এবং মৃত্যুদন্ডের একমাত্র থ্রেড প্রথমটি সম্পন্ন হওয়ার আগে দ্বিতীয় কার্য প্রক্রিয়া শুরু করার জন্য কোড করা যেতে পারে। একমাত্র মানদণ্ডটি হ'ল অন্য কাজের ইনপুট হিসাবে একটি কাজের ফলাফলের প্রয়োজন হয় না। যতক্ষণ কাজগুলির শুরু এবং শেষের সময়গুলি ওভারল্যাপ হয়, (কেবলমাত্র তখনই সম্ভব যদি না উভয়ের আউটপুটটিকে অন্যের ইনপুট হিসাবে প্রয়োজন হয়) তবে তারা যত সংখ্যক থ্রেড ব্যবহার না করেই অবিচ্ছিন্নভাবে কার্যকর করা হচ্ছে।
সাইনক্রোনাস উদাহরণ:
একাধিক টাস্ক নিয়ে গঠিত যে কোনও প্রক্রিয়া যেখানে কাজগুলি ক্রমানুসারে কার্যকর করতে হবে তবে একটি অবশ্যই অন্য মেশিনে কার্যকর করা উচিত (আনুন এবং / অথবা ডেটা আপডেট করুন, আর্থিক পরিষেবা থেকে স্টক উদ্ধৃতি পাবেন ইত্যাদি)। যদি এটি একটি পৃথক মেশিনে থাকে তবে এটি পৃথক থ্রেডে রয়েছে, সিঙ্ক্রোনাস বা অ্যাসিনক্রোনাস হোক।
সহজ কথায়:
সমলয়
আপনি সিনেমার টিকিট পেতে একটি সারিতে রয়েছেন। আপনার সামনের প্রত্যেকটি না পাওয়া পর্যন্ত আপনি একটি পেতে পারবেন না এবং এটি আপনার পিছনে সারি করা লোকদের জন্য প্রযোজ্য।
অসমনিয়ত
আপনি অন্য অনেক লোকের সাথে রেস্তোরাঁয় রয়েছেন। আপনি আপনার খাবার অর্ডার। অন্যান্য ব্যক্তিরাও তাদের খাবারের অর্ডার দিতে পারেন, তারা অর্ডার দেওয়ার আগে তাদের আপনার খাবার রান্না করা এবং আপনাকে পরিবেশন করার জন্য অপেক্ষা করতে হবে না। রান্নাঘরের রেস্তোঁরাগুলিতে কর্মীরা অবিচ্ছিন্নভাবে রান্না, পরিবেশন এবং অর্ডার নিচ্ছেন। রান্না করা মাত্রই লোকেরা তাদের খাবার পরিবেশন করবে।
সিঙ্ক্রোনাস এক্সিকিউশন
আমার বস একজন ব্যস্ত মানুষ। সে আমাকে কোড লিখতে বলে। আমি তাকে বলি: ভাল। আমি শুরু করি এবং তিনি আমাকে কাঁধের মতো শকুনের মতো দেখছেন, আমার পিছনে দাঁড়িয়ে আছেন। আমি "ডুড, ডাব্লুটিএফএফ এর মত: আপনি এই কাজ শেষ করার সময় কেন কিছু করবেন না?"
তিনি এর মতো: "না, আপনি শেষ না করা পর্যন্ত আমি এখানে অপেক্ষা করছি " " এটি সিনক্রোনাস।
অ্যাসিঙ্ক্রোনাস এক্সিকিউশন
বস আমাকে এটি করতে বলেছিলেন এবং আমার কাজের জন্য সেখানে অপেক্ষা করার পরিবর্তে বস চলে যান এবং অন্যান্য কাজ করেন। আমি যখন আমার কাজ শেষ করি আমি কেবল আমার মনিবকে রিপোর্ট করে বলি: "আমি হয়ে গেলাম!" এটি অ্যাসিঙ্ক্রোনাস এক্সিকিউশন।
(আমার পরামর্শ নিন: আপনার পিছনে বসের সাথে কখনও কাজ করবেন না))
সিঙ্ক্রোনাস এক্সিকিউশন মানে একটি একক সিরিজে মৃত্যুদন্ড কার্যকর হয়। A->B->C->D
। আপনি যদি সেই রুটিনগুলিকে কল করে থাকেন, A
চলবে, তারপরে সমাপ্ত B
হবে, তারপরে শুরু হবে, তারপরে সমাপ্ত হবেC
হবে, ইত্যাদি
সঙ্গে অ্যাসিঙ্ক্রোনাস ফাঁসি , আপনি একটি রুটিন শুরু, এবং দিন এটা ব্যাকগ্রাউন্ডে রান যখন আপনি "শেষ এই জন্য অপেক্ষা" আপনার পরবর্তী, তারপর এক পর্যায়ে বলে শুরু। এটি আরও মত:
স্টার্ট A->B->C->D->
অপেক্ষা জন্যA
শেষ করার
সুবিধা হলো আপনি নির্বাহ করতে পারেন হয় B
, C
এবং অথবা D
যখন A
যার ফলে আপনি আপনার সম্পদের ভাল সুবিধা গ্রহণ এবং কম "হ্যাং" বা "অপেক্ষা করছে" থাকতে পারে, এখনও (একটি পৃথক থ্রেডে পটভূমিতে) চলছে।
সংক্ষেপে, সিঙ্ক্রোনাইজেশন দুই বা ততোধিক প্রসেস 'বোঝায় শুরু এবং শেষ পয়েন্ট, না তাদের মৃত্যুদণ্ড কার্যকর । এই উদাহরণে, প্রসেস এ এর শেষ পয়েন্টটি প্রসেস বি এর প্রারম্ভ পয়েন্টের সাথে সুসংগত হয়:
সমলয় | -------- একটি -------- | | -------- বি -------- |
অ্যাসিঙ্ক্রোনাস প্রক্রিয়া, অপরপক্ষে, না না তাদের যাত্রা শুরু এবং শেষ সিঙ্ক্রোনাইজ আছে:
অসমনিয়ত | -------- একটি -------- | | -------- বি -------- |
কোথায় প্রক্রিয়া একটি ওভারল্যাপ প্রক্রিয়া বি, তারা একই সময়ে বা চালাচ্ছেন সিঙ্ক্রোনাস (অভিধান ডেফিনেশন) বিভ্রান্তির, অত।
আপডেট: চার্লস ব্রেটানা তার উত্তরটির উন্নতি করেছে , সুতরাং এই উত্তরটি এখন কেবল একটি সাধারণ (সম্ভাব্যভাবে ওভারসিম্প্লাইফাইড) স্মৃতিচক্র।
সিঙ্ক্রোনাসের অর্থ হ'ল কলার প্রতিক্রিয়া বা সমাপ্তির জন্য অপেক্ষা করে, সংযোজক যে কলার অবিরত থাকে এবং একটি প্রতিক্রিয়া পরে আসে (যদি প্রযোজ্য হয়)।
উদাহরণ হিসাবে:
static void Main(string[] args)
{
Console.WriteLine("Before call");
doSomething();
Console.WriteLine("After call");
}
private static void doSomething()
{
Console.WriteLine("In call");
}
এটি সর্বদা আউটপুট হবে:
Before call
In call
After call
তবে যদি আমরা ডস কিছুকে অ্যাসিঙ্ক্রোনাস করতে হয় (এটি করার একাধিক উপায়), তবে আউটপুটটি হয়ে উঠতে পারে:
Before call
After call
In call
কারণ অ্যাসিক্রোনাস কল করার পদ্ধতিটি তত্ক্ষণাত কোডের পরবর্তী লাইনের সাথে চালিয়ে যেতে থাকবে। আমি বলি "পারে", কারণ মৃত্যুদণ্ডের আদেশটি অ্যাসিঞ্চ ক্রিয়াকলাপের সাথে গ্যারান্টিযুক্ত হতে পারে না। এটি থ্রেডের সময় ইত্যাদির উপর নির্ভর করে মূল হিসাবে চালিত করতে পারে
আমি মনে করি এটি বিস্তৃতভাবে ব্যাখ্যা তবে এটি বাস্তব জীবনের উদাহরণ ব্যবহার করে স্পষ্ট করে।
ছোট উদাহরণ:
ধরা যাক একটি অডিও বাজানোতে তিনটি পদক্ষেপ জড়িত:
যদি আপনার অডিও প্লেয়ার প্রতিটি গানের জন্য যথাক্রমে 1,2,3 পদক্ষেপটি করে তবে তা সিঙ্ক্রোনাস। গানটি আসার জন্য এবং সংক্ষেপিত না হওয়া পর্যন্ত আপনাকে গানটি শুনতে কিছুটা সময় অপেক্ষা করতে হবে।
যদি আপনার অডিও প্লেয়ার একে অপরের থেকে পৃথক 1,2,3 পদক্ষেপ করে তবে তা অ্যাসিঙ্ক্রোনাস। অর্থাত। অডিও 1 (ধাপ 3) প্লে করার সময়, যদি এটি হার্ডডিস্ক থেকে সমান্তরালে (পদক্ষেপ 1) 3 অডিও নিয়ে আসে এবং এটি সমান্তরালে অডিও 2 কে সংক্ষেপিত করে। (দ্বিতীয় পদক্ষেপ) আপনি আনতে এবং সংক্ষেপণ জন্য খুব অপেক্ষা না করে গান শুনতে শেষ হবে।
সিঙ্ক এবং অ্যাসিঙ্ক অপারেশনগুলি বর্তমান কার্যের সাথে সম্পর্কিত একটি কার্যকর কার্যাদেশের আদেশ সম্পর্কে । একটি টেবিলের দুটি কাজ: বর্তমান কাজ এবং একটি নতুন টাস্ক
সিঙ্ক্রোনাস (ব্লক করা) - বোঝায় যে কার্যগুলি একের পর এক সম্পাদিত হবে। পরবর্তী কাজটি তার পূর্ববর্তী কাজ শেষ হওয়ার পরেই শুরু করা হয়। Task 2
যতক্ষণ না শুরু Task 1
সমাপ্ত হয়
অ্যাসিনক্রোনাস (অ-অবরুদ্ধকরণ) - এর দ্বারা বোঝা যায় যে কোনও কোড কার্যকর করার এবং পরে ফলাফল সম্পর্কে অবহিত করার (যেমন কলব্যাক, বৈশিষ্ট্য) প্রতিশ্রুতি দিয়ে কাজটি তত্ক্ষণাত নিয়ন্ত্রণ প্রদান করে। শেষ না Task 2
হলেও কার্যকর করা হয়Task 1
সিঙ্ক এবং অ্যাসিঙ্ক সম্পর্কে SO উত্তর: আইওএস এ , অ্যান্ড্রয়েডে
সহজভাবে বলেছেন যে অ্যাসিঙ্ক্রোনাস এক্সিকিউশন ব্যাকগ্রাউন্ডে স্টাফ করছে।
উদাহরণস্বরূপ আপনি যদি ইন্টারনেট থেকে কোনও ফাইল ডাউনলোড করতে চান তবে আপনি এটি করতে সিঙ্ক্রোনাস ফাংশন ব্যবহার করতে পারেন তবে ফাইলটি ডাউনলোড শেষ হওয়া অবধি এটি আপনার থ্রেডটিকে ব্লক করে দেবে। এটি আপনার অ্যাপ্লিকেশনটিকে কোনও ব্যবহারকারীর ইনপুটকে প্রতিক্রিয়াহীন করতে পারে।
পরিবর্তে আপনি অ্যাসিক্রোনাস পদ্ধতি ব্যবহার করে পটভূমিতে ফাইলটি ডাউনলোড করতে পারেন। এক্ষেত্রে ডাউনলোড ফাংশনটি তত্ক্ষণাত্ ফিরে আসে এবং প্রোগ্রামের প্রয়োগ কার্যকরভাবে চলতে থাকে। সমস্ত ডাউনলোড অপারেশনগুলি পটভূমিতে সম্পন্ন হয় এবং এটি শেষ হয়ে গেলে আপনার প্রোগ্রামটি অবহিত হবে।
সত্যিই একটি সহজ উদাহরণ হিসাবে,
সমলয়
কল্পনা করুন 3 স্কুল শিক্ষার্থী একটি রাস্তায় রিলে রেস চালানোর জন্য নির্দেশ দিয়েছে।
প্রথম শিক্ষার্থী তার প্রদত্ত দূরত্ব চালায়, থামবে এবং ২ য় স্থানে ব্যাটনটি পাস করবে। আর কেউ চালাতে শুরু করেনি।
1------>
2.
3.
২ য় ছাত্র যখন লাঠিটি পুনরুদ্ধার করে, তখন সে তার প্রদত্ত দূরত্ব চালাতে শুরু করে।
1.
2------>
3.
২ য় শিক্ষার্থী তার জুতো খুলে ফেলল। এখন সে থেমে গেছে এবং আবারও বেঁধে আছে। এ কারণে, ২ য় সমাপ্তির সময়টি প্রসারিত হয়েছে এবং তৃতীয়টির শুরুর সময়টি বিলম্বিত হয়েছে।
1.
--2.--->
3.
এই প্যাটার্নটি ২ য় থেকে ব্যাটন পুনরুদ্ধার এবং রেস শেষ করার আগ পর্যন্ত অব্যাহত থাকবে।
অসমনিয়ত
ঠিক 10 জন এলোমেলো লোক একই রাস্তায় হাঁটুন। তারা অবশ্যই কোনও কাতারে নেই, এলোমেলোভাবে বিভিন্ন গতিতে রাস্তায় বিভিন্ন স্থানে হাঁটছে।
২ য় ব্যক্তির জুতো খুলে ফেলা হয়নি। এটিকে আবার বেঁধে রাখতে সে থামল।
তবে কেউ এটি বেঁধে রাখার জন্য অপেক্ষা করছে না। অন্য প্রত্যেকে এখনও তাদের আগের মতো একই পথে চলছিল।
10--> 9-->
8--> 7--> 6-->
5--> 4-->
1--> 2. 3-->
আমি এটি ব্যাখ্যা করার জন্য একটি জিআইএফ তৈরি করেছি, সহায়ক হবে বলে আশা করি: দেখুন, লাইন 3টি অ্যাসিনক্রোনাস এবং অন্যরা সমকালীন। লাইন 3 এর আগে সমস্ত রেখার কাজ লাইন শেষ হওয়ার আগে অপেক্ষা করা উচিত, তবে 3 লাইনের কারণে অ্যাসিনক্রোনাস, পরবর্তী লাইন (লাইন 4), 3 লাইনটির জন্য অপেক্ষা করবেন না, তবে লাইন 5 লাইন 4 এর কাজ শেষ করার জন্য অপেক্ষা করবে, এবং লাইন 6 6 এর জন্য 5 এবং 7 রেখার জন্য অপেক্ষা করা উচিত, কারণ 4,5,6,7 লাইন অ্যাসিঙ্ক্রোনাস নয়।
একটি ক্রম যেমন: a> b> c> d> সম্পাদন করার সময়, যদি আমরা মৃত্যুদন্ড কার্যকর করার মাঝামাঝি কোনও ব্যর্থতা পাই তবে:
a
b
c
fail
তারপরে আমরা শুরু থেকে পুনরায় শুরু করি:
a
b
c
d
এটি সমকালীন
তবে যাইহোক, আমাদের কার্যকর করতে একই ধারাবাহিকতা রয়েছে: a> b> c> d>, এবং আমাদের মাঝখানে একটি ব্যর্থতা রয়েছে:
a
b
c
fail
... তবে শুরু থেকে পুনরায় আরম্ভ করার পরিবর্তে আমরা ব্যর্থতার দিক থেকে আবার শুরু করি:
c
d
... এটি অ্যাসিক্রোনাস হিসাবে জানি।
আপনি সমান্তরাল বনাম সিরিজের সাথে সিঙ্ক্রোনাসকে বিভ্রান্ত করছেন। সিঙ্ক্রোনাস মানে একই সাথে। সিঙ্ক্রোনাইজড অর্থ প্রতিটি ওথের সম্পর্কিত যা সিরিজ বা একটি নির্দিষ্ট বিরতিতে অর্থ হতে পারে to প্রোগ্রামটি সমস্ত করছে, এটি ধারাবাহিকভাবে চলছে। একটি অভিধান পান ... এই কারণেই আমাদের চাবি নেই। আপনার চা বা মিষ্টি চা আছে।
সিঙ্ক্রোনাস মূলত এর অর্থ হল যে আপনি একবারে কেবল একটি জিনিস কার্যকর করতে পারেন। অ্যাসিঙ্ক্রোনাসের অর্থ হ'ল আপনি একসাথে একাধিক জিনিস কার্যকর করতে পারেন এবং পরবর্তী কোনওটিতে যাওয়ার জন্য আপনাকে বর্তমান জিনিসটি সম্পাদন শেষ করতে হবে না।
প্রাতঃরাশের জন্য নির্দেশনার উদাহরণ ব্যবহার করুন
আপনার যদি রান্নার অভিজ্ঞতা থাকে তবে আপনি এই নির্দেশাবলীকে অবিচ্ছিন্নভাবে সম্পাদন করতেন। আপনি ডিমের জন্য প্যান গরম করা শুরু করবেন, তারপর বেকন শুরু করুন। আপনি টোস্টে রুটিটি রাখবেন, তারপরে ডিমগুলি শুরু করুন। প্রক্রিয়াটির প্রতিটি ধাপে, আপনি কোনও কাজ শুরু করতে চান, তারপরে আপনার মনোযোগের জন্য প্রস্তুত এমন কার্যগুলিতে আপনার দৃষ্টি আকর্ষণ করুন।
প্রাতঃরাশ রান্না করা অ্যাসিঙ্ক্রোনাসের একটি ভাল উদাহরণ সমান্তরাল নয় এমন কাজের । একজন ব্যক্তি (বা থ্রেড) এই সমস্ত কাজ পরিচালনা করতে পারে। প্রাতঃরাশের সাদৃশ্য অব্যাহত রেখে, একজন ব্যক্তি প্রথম কাজ শেষ হওয়ার আগে পরবর্তী কাজ শুরু করে অবিচ্ছিন্নভাবে প্রাতঃরাশ তৈরি করতে পারেন। রান্নাটি কেউ দেখছে কিনা তা এগিয়ে যায় prog ডিমের জন্য প্যানটি গরম করা শুরু করার সাথে সাথে আপনি বেকন ভাজতে শুরু করতে পারেন। বেকন শুরু হয়ে গেলে, আপনি রুটি টোস্টারে রাখতে পারেন।
সমান্তরাল অ্যালগরিদমের জন্য আপনার একাধিক রান্না (বা থ্রেড) লাগবে। একটি ডিম তৈরি করত, একটি বেকন ইত্যাদি on প্রত্যেকে কেবলমাত্র একটি কাজে মনোনিবেশ করা হবে। প্রতিটি কুক (বা থ্রেড) বেকন ফ্লিপ করার জন্য প্রস্তুত হওয়ার জন্য, বা টোস্টটি পপ করার জন্য সিঙ্ক্রোনজভাবে অবরুদ্ধ করা হবে।
অ্যাসিনক্রোনাস প্রোগ্রামিং ধারণা থেকে রেফারেন্স
একটি সিঙ্ক্রোনাস অপারেশন কলারে ফিরে যাওয়ার আগে তার কাজটি করে।
একটি অ্যাসিক্রোনাস অপারেশন কলারে ফিরে যাওয়ার পরে (বেশিরভাগ বা সমস্ত) কাজ করে।
" একই সাথে সমলয় মৃত্যুদণ্ড" ডেফিনেশনে (যা কখনও বিভ্রান্তিকর হয়), এখানে একটি ভালো উপায় তা বুঝতে দেওয়া হল:
সিঙ্ক্রোনাস এক্সিকিউশন : কোডের ব্লকের মধ্যে থাকা সমস্ত কাজ একই সময়ে কার্যকর করা হয়।
অ্যাসিঙ্ক্রোনাস এক্সিকিউশন : কোডের ব্লকের মধ্যে থাকা সমস্ত কাজ একই সময়ে কার্যকর করা হয় না।
আমি মনে করি এটির একটি ভাল উপায় হ'ল একটি ক্লাসিক চলমান রিলে রেস
সিঙ্ক্রোনাস : একই দলের সদস্যদের মতো প্রক্রিয়াগুলি, তারা লাঠি না পাওয়া পর্যন্ত কার্যকর করা হবে না (পূর্ববর্তী প্রক্রিয়া / রানার মৃত্যুদন্ডের সমাপ্তি) এবং তবুও তারা সবাই একে অপরের সাথে সিঙ্কে অভিনয় করে।
অ্যাসিনক্রোনাস : যেখানে একই দলের সাথে বিভিন্ন দলের সদস্যদের মতো প্রক্রিয়া চলে সেখানে তারা একে অপরের সাথে অ্যাসিঙ্ক হিসাবে চলবে এবং থামবে, তবে একই রেসের মধ্যে (সামগ্রিক প্রোগ্রামের সম্পাদন)।
এটা বোঝা যায় না?
সিঙ্ক্রোনাইজের একটি আলাদা ইংরেজি সংজ্ঞা হ'ল এখানে
স্থানাঙ্ক; একত্র করি।
আমি মনে করি এটি "একই সাথে ঘটছে" এর চেয়ে আরও ভাল সংজ্ঞা। এটিও একটি সংজ্ঞা, তবে আমি মনে করি না এটি কম্পিউটার বিজ্ঞানের ক্ষেত্রে এটি যেভাবে ব্যবহৃত হয় তা ফিট করে।
সুতরাং একটি অ্যাসিনক্রোনাস টাস্ক অন্যান্য কাজের সাথে সমন্বিত হয় না, যেখানে একটি সিঙ্ক্রোনাস টাস্ক অন্য কাজগুলির সাথে সমন্বিত হয়, তাই অন্যটি শুরুর আগে একটি সমাপ্ত হয়।
কীভাবে এটি অর্জিত হয় তা ভিন্ন প্রশ্ন।
হ্যাঁ সিঙ্ক্রোনাস অর্থ একই সাথে, আক্ষরিক অর্থে, এর অর্থ সমস্ত কাজ একসাথে করা। বিশ্বের একাধিক মানব / বস্তু একই সাথে একাধিক জিনিস করতে পারে তবে আমরা যদি কম্পিউটারের দিকে তাকাই তবে এটি সিঙ্ক্রোনাস অর্থ যেখানে প্রক্রিয়াগুলি একসাথে কাজ করে তার অর্থ প্রক্রিয়াগুলি একে অপরের প্রত্যাবর্তনের উপর নির্ভরশীল এবং সে কারণেই তারা একটি কার্যকর করা হয় get যথাযথ ক্রমানুসারে একের পর এক। অ্যাসিক্রোনাসের অর্থ যেখানে প্রক্রিয়াগুলি একসাথে কাজ করে না, তারা একই সাথে কাজ করতে পারে (যদি মাল্টিথ্রেডে থাকে) তবে স্বাধীনভাবে কাজ করতে পারে।