কীভাবে অ্যাসিনক্রোনাস এবং সমান্তরাল প্রোগ্রামিংয়ের মধ্যে পার্থক্যটি স্পষ্ট করে বলতে পারি?


139

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

আমি একটি ওয়ার্কেডে প্রোগ্রামার এবং প্রায়শই প্রায়শই অ্যাসিঙ্ক এবং কলব্যাক ব্যবহার করি। সমান্তরালতা বহিরাগত বোধ করে।

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


অ্যাসিঙ্ক্রোনাস এবং সমান্তরাল প্রোগ্রামিংয়ের মধ্যে সম্পর্ক সম্পর্কে আমি একটি ব্লগ পোস্ট লিখেছিলাম - anat-async.blogspot.com/2018/08/…
আলেক্সি কাইগোরোডভ


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

উত্তর:


87

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

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


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

1
"অ্যানিমেশনটি রেন্ডার করতে দীর্ঘ সময় লাগে তাই যদি আপনি যদি আপনার অ্যানিমেশন সম্পাদনা সফ্টওয়্যার থেকে রেন্ডারটি চালু করেন তবে আপনি নিশ্চিত করতে পারবেন (...)"। কি?

3 ডি অ্যানিমেশন অংশের জন্য: প্রথমত, আপনি সিপিইউতে ফ্রেম উত্পন্ন করে একটি 3 ডি-গ্রাফিক্স প্রোগ্রামটি কখনও পরিচালনা করবেন না - যে কোনও বুদ্ধিমান ব্যক্তি তাত্ক্ষণিকভাবে জিপিইউ ব্যবহারের পরামর্শ দিবে। দ্বিতীয়ত, আমরা যদি এটি (অত্যন্ত নিরুৎসাহিত) করি তবে আমরা কতগুলি ফ্রেম রেন্ডার করতে পারি তা পরিমাপ করার জন্য একটি টাইমার ব্যবহার করব, অন্যথায় আমরা কেবল অসম্পূর্ণ রেন্ডার কল টাস্কগুলির একটি স্ট্যাক তৈরি করতে পারব। তবে আপনার পয়েন্টটি বেশিরভাগ 2 ডি-রেন্ডারিং অ্যাপ্লিকেশনগুলির সাথে পুরোপুরি বৈধ যা প্রতি ব্যবহারকারী ব্যবহারকারী ইনপুট ইভেন্টের ভিত্তিতে রেন্ডার করে।
イ き ん ぐ

1
অ্যাসিঙ্ক্রোনাস এবং অ-ব্লকিং বিভিন্ন ধরণের দৃষ্টান্ত।
লার্নের মারকুইস

72

আমি বিশ্বাস করি যে মূল পার্থক্য সম্মতি এবং সমান্তরালতার মধ্যে

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

সমান্তরাল প্রোগ্রামিং সাধারণত মূল উদ্দেশ্য হিসাবে থ্রুপুট থাকে যখন বিলম্বিতা, অর্থাৎ একক উপাদানের সমাপ্তির সময়, সমমানের অনুক্রমিক প্রোগ্রামের চেয়ে খারাপ হতে পারে।

সম্মতি এবং সমান্তরালতার মধ্যে পার্থক্যটি আরও ভালভাবে বোঝার জন্য আমি ড্যানিয়েল ভারাক্কার সম্মতিতে প্রাবিলিস্টিক মডেলগুলি থেকে উদ্ধৃত করতে যা যা চুক্তির তত্ত্বের জন্য নোটগুলির একটি ভাল সেট:

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

উপসংহারে , সমান্তরাল প্রোগ্রামিং কিছুটা সামঞ্জস্যের একটি বিশেষ ক্ষেত্রে যেখানে পৃথক সংস্থাগুলি উচ্চ কার্যকারিতা এবং থ্রুপুট (সাধারণত) পেতে সহযোগিতা করে।

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


37

এই নিবন্ধটি এটি খুব ভালভাবে ব্যাখ্যা করেছে: http://urda.cc/blog/2010/10/04/asynchronous-versus-parallel- প্রোগ্রামিং

এটি রয়েছে অ্যাসিক্রোনাস প্রোগ্রামিং সম্পর্কে:

অ্যাসিঙ্ক্রোনাস কলগুলি কোনও অ্যাপ্লিকেশনের মধ্যে "ব্লক করা" রোধ করতে ব্যবহৃত হয়। [এরকম] কলটি ইতিমধ্যে বিদ্যমান থ্রেডে স্পিন-অফ হয়ে যাবে (যেমন I / O থ্রেড) এবং যখন সম্ভব তখন এটির কাজটি করবে।

এটি সমান্তরাল প্রোগ্রামিং সম্পর্কে:

সমান্তরাল প্রোগ্রামিংয়ে আপনি এখনও কাজ বা কাজগুলি বিচ্ছেদ করেন তবে মূল পার্থক্য হ'ল আপনি কাজের প্রতিটি অংশের জন্য নতুন থ্রেড স্পিন করেছেন

এবং এই সংক্ষেপে:

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


3
এই নিবন্ধটি> সমস্ত উত্তর এখানে (অবশ্যই এই এক ব্যতীত!)
FellyTone84

1
লিঙ্কের জন্য ধন্যবাদ। সুতরাং ... সাধারণভাবে , ইউআই থেকে সার্ভারের সাথে যোগাযোগ করার সময় (বা কোনও ক্লায়েন্ট থেকে ওয়েব পরিষেবাদিতে) অ্যাসিঙ্ক কলগুলি ব্যবহার করুন। সার্ভারে বা ওয়েব পরিষেবার শেষের পাশাপাশি আপনার ব্যবসায়ের স্তরে সমান্তরাল থ্রেডিং ব্যবহার করুন।
goku_da_master

18

আমার প্রাথমিক বোঝাপড়াটি হ'ল:

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

সমান্তরাল প্রোগ্রামিং সম্পর্কিত তবে একই সাথে একটি বৃহত কাজকে ছোট অংশগুলিতে ভাঙ্গার সাথে আরও বেশি উদ্বিগ্ন time এরপরে ছোট অংশগুলির ফলাফলগুলি সামগ্রিক ফলাফল তৈরির জন্য একত্রিত করা যেতে পারে। উদাহরণ: রে-ট্রেসিং যেখানে পৃথক পিক্সেলের রঙ মূলত স্বাধীন।

এটি এর চেয়ে সম্ভবত আরও জটিল, তবে আমি মনে করি এটিই মূল পার্থক্য।


এটি দুর্দান্তভাবে রাখা হয়েছে তবে এটি বেশ ভুল। অ্যাসিঙ্ক্রোনসিটির মতো, প্যারালালিজম কন্ট্রোল সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে নিয়ন্ত্রণ প্রবাহকে চালিয়ে যেতেও অনুমতি দেয় ain প্রধান পার্থক্যটি সামঞ্জস্যতা হার্ডওয়্যারের উপর নির্ভর করে।
সারকান

13

আমি এই পদগুলির মধ্যে পার্থক্যটি ভাবতে চাই:

অ্যাসিঙ্ক্রোনাস: আপনি চলে যান এবং এই কাজটি করুন, আপনি ফিরে এসে আমাকে বলুন এবং ফলাফল আনবেন। আমি মাঝামাঝি সময়ে অন্যান্য জিনিসগুলির সাথে চলব।

সমান্তরাল: আমি চাই আপনি এই কাজটি করুক। যদি এটি আরও সহজ করে তোলে তবে সাহায্যের জন্য কিছু লোককে পান। এটি যদিও জরুরি, সুতরাং আপনি ফলাফলগুলি না নিয়ে আসা পর্যন্ত আমি এখানে অপেক্ষা করব। আপনি ফিরে না আসা পর্যন্ত আমি আর কিছুই করতে পারি না।

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


13

অ্যাসিঙ্ক : এটি অন্য কোথাও নিজের দ্বারা করুন এবং আপনি সম্পূর্ণ করার পরে আমাকে কল করুন (কলব্যাক)। এতক্ষণে আমি আমার কাজটি চালিয়ে যেতে পারি।

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

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

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

প্রধান পার্থক্য সমান্তরালতা বেশিরভাগ হার্ডওয়্যার উপর নির্ভর করে।


11

এটি কার্যকর করার আদেশের প্রশ্ন।

যদি এ-এর বি এর সাথে অ্যাসিক্রোনাস হয় তবে আমি পূর্বেই ভবিষ্যদ্বাণী করতে পারি না যে ক এর উপ-বিভাগগুলি বি এর উপ-বিভাগগুলির সাথে ঘটবে will

যদি এ বি এর সাথে সমান্তরাল হয়, তবে এ এর ​​জিনিসগুলি বি এর জিনিসগুলির সাথে একই সময়ে ঘটছে তবে, মৃত্যুদণ্ড কার্যকর করার আদেশটি এখনও সংজ্ঞায়িত করা যেতে পারে।

সম্ভবত মুশকিল হ'ল অ্যাসিনক্রোনাস শব্দটি হ'ল সমকেন্দ্র।

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

যখন আমার প্রত্যেকে আলাদা আলাদা উইন্ডো ধোচ্ছে তখন আমার দাসীদের দল সমান্তরালভাবে কাজ করছে।

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

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

আমার মার্চিং ব্যান্ডটিও সমান্তরাল, কারণ প্রতিটি প্লেয়ার সংগীত পড়েন এবং তাদের উপকরণগুলি নিয়ন্ত্রণ করেন, তবে তারা অত্যন্ত সুসংগত: এগুলি খেলতে এবং সময় মতো একে অপরের সাথে মিছিল করে।

একটি ছদ্মবেশী জ্যাটলিং বন্দুকটি সমান্তরাল হিসাবে বিবেচনা করা যেতে পারে, তবে সবকিছুই 100% সিঙ্ক্রোনাস, সুতরাং এটি একটি প্রক্রিয়াটি এগিয়ে চলছে বলে মনে হচ্ছে।


9

অ্যাসিঙ্ক্রোনাস কেন?

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

সমান্তরাল প্রোগ্রামিং কেন?

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


5

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

সমান্তরাল প্রোগ্রামিং এর ধরুন আপনার পাঠ্য ফাইল থেকে 100 টি লাইন পড়ার, বলার একটি কাজ আছে এবং একটি লাইন পড়তে 1 সেকেন্ড সময় লাগে। সুতরাং, পাঠ্য ফাইলটি পড়তে আপনার 100 সেকেন্ডের প্রয়োজন হবে। এখন আপনি উদ্বিগ্ন যে ক্লায়েন্টটি অপারেশন শেষ হতে 100 সেকেন্ড অপেক্ষা করতে হবে। সুতরাং আপনি আরও 9 টি ক্লোন তৈরি করেন এবং তাদের প্রত্যেককে পাঠ্য ফাইল থেকে 10 টি লাইন পড়তে বাধ্য করেন। এখন নেওয়া সময়টি 100 টি লাইন পড়তে কেবল 10 সেকেন্ড is অতএব আপনার আরও ভাল পারফরম্যান্স রয়েছে।

সংক্ষেপে বলা যায়, প্রতিক্রিয়াশীলতা অর্জনের জন্য অ্যাসিনক্রোনাস কোডিং করা হয় এবং পারফরম্যান্সের জন্য সমান্তরাল প্রোগ্রামিং করা হয়।


4

অ্যাসিঙ্ক্রোনাস: কোনও প্রকার বাধা ছাড়াই পটভূমিতে কোনও পদ্ধতি বা টাস্ক চালানো। অগত্যা একটি পৃথক থ্রেড চালানো যাবে না। প্রসঙ্গের স্যুইচিং / সময় নির্ধারণের ব্যবহার করে।

সমান্তরাল টাস্ক: প্রতিটি টাস্ক প্যারাল্লাই চালায়। প্রসঙ্গের স্যুইচিং / সময় নির্ধারণের ব্যবহার করে না।


4

আমি দুটি ধারণার সাথে মোটামুটি আরামদায়ক এসেছি, তবে সেগুলি সম্পর্কে আমার কাছে পরিষ্কার কিছু নয়।

কয়েকটি উত্তর পড়ার পরে, আমি মনে করি পার্থক্যটি বর্ণনা করার জন্য আমার একটি সঠিক এবং সহায়ক রূপক রয়েছে।

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

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

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

তবে, যদি আপনি যত্ন নেন (যেমন, একাধিক প্রক্রিয়া রয়েছে - বা কার্ডের স্তুপ - যা একে অপরের উপর নির্ভর করে), তবে ওএসের বদলানো আপনার ফলাফলগুলি স্ক্রু করবে।

অ্যাসিক্রোনাস কোড লেখার জন্য আদেশটি কী শেষ হয় তা নির্বিশেষে মৃত্যুদন্ড কার্যকর করার ক্রমের মধ্যে নির্ভরতাগুলি পরিচালনা করা দরকার। এই কারণেই "কল-ব্যাক" এর মতো নির্মাণগুলি ব্যবহৃত হয়। তারা প্রসেসরকে বলে, "পরবর্তী কাজটি হ'ল আমরা যা করলাম তা অন্য স্ট্যাককে জানান"। এই জাতীয় সরঞ্জামগুলি ব্যবহার করে, আপনি আশ্বস্ত হতে পারেন যে ওএসকে এর আরও কোনও নির্দেশিকা চালানোর অনুমতি দেওয়ার আগে অন্য স্ট্যাকটি বিজ্ঞপ্তি পেয়েছে। ("যদি বলা হয়_ব্যাক == মিথ্যা: প্রেরণ করুন (no_operation)" - এটি বাস্তবায়িত হয় কীভাবে এটি নিশ্চিত কিনা তা নিশ্চিত নন তবে যৌক্তিকভাবে আমি মনে করি এটি ধারাবাহিক consistent)

সমান্তরাল প্রক্রিয়াগুলির জন্য, পার্থক্যটি হ'ল আপনার কাছে দুটি স্ট্যাক রয়েছে যা একে অপরের যত্ন নেয় না এবং দুটি শ্রমিক তাদের প্রক্রিয়া করার জন্য। দিন শেষে, আপনাকে দুটি স্ট্যাকের ফলাফলগুলি একত্রিত করার প্রয়োজন হতে পারে যা পরে সংলগ্নতার বিষয় হতে পারে তবে মৃত্যুদন্ড কার্যকর করার জন্য, আপনাকে আবার পাত্তা দেবে না।

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


2

সাধারণত, কেবল দুটি উপায় যা আপনি প্রতিবার একের বেশি কাজ করতে পারেন। একটি হ'ল অ্যাসিনক্রোনাস , অন্যটি সমান্তরাল

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

সমান্তরাল দৃষ্টান্ত সবসময় মাল্টি থ্রেডিং, এবং মাল্টিপ্রসেসিং বোঝায়। এটি মাল্টি-কোর প্রসেসরগুলিকে পুরোপুরি কাজে লাগাতে পারে, একইসাথে জিনিসগুলি করতে পারে।


-1

উপরের সমস্ত উত্তরের সংক্ষিপ্তসার

  1. সমান্তরাল কম্পিউটিং:

Through থ্রুপুট ইস্যু সমাধান করে। একটি বড় কাজকে ছোট ছোট ভাগে ভাঙার সাথে সম্পর্কিত

Machine মেশিন সম্পর্কিত (মাল্টি মেশিন / কোর / সিপিইউ / প্রসেসরের প্রয়োজন) যেমন: মাস্টার স্লেভ, মানচিত্র হ্রাস করুন।

সমান্তরাল গণনা সাধারণত একটি কেন্দ্রীয় নিয়ন্ত্রণ জড়িত যা বিভিন্ন প্রসেসরের মধ্যে কাজ বিতরণ করে

  1. অ্যাসিঙ্ক্রোনাস:

Ten বিলম্বিত সমস্যাটি সমাধান করে অর্থাত্, আপনি অন্য কিছু করার আগে একটি ব্যয়বহুল ক্রিয়াকলাপটি শেষ হওয়ার জন্য 'আশেপাশের সমস্যা' সমাধান করুন

থ্রেড সম্পর্কিত (বহু থ্রেড প্রয়োজন)

থ্রেডিং (থ্রেড, চালানো, এক্সিকিউটার ব্যবহার করে) জাভাতে অ্যাসিক্রোনাস অপারেশনগুলি সম্পাদনের এক মৌলিক উপায়

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