বহু-থ্রেডযুক্ত অ্যাপ্লিকেশনগুলির ইউএমএল ডায়াগ্রাম


25

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

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

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

আমি তাই জানতে চাই:

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

2
আমি ব্যক্তিগতভাবে ক্রিয়াকলাপের চিত্রগুলি মডেলিংয়ের জন্য দরকারী (পন্টেন্টালি) সমবর্তী ব্যবহারের কেস / প্রক্রিয়াগুলির জন্য দরকারী, তবে আপনি শ্রেণি / অবজেক্টের স্তরে যেতে চাইলে সেগুলি সত্যই উপযুক্ত নয়।
পিয়েটার টারিক

উত্তর:


12

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

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

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

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

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


6

আমার উত্তর দিপনের পরিপূরক যে এতে ইউএমএল সিকোয়েন্স ডায়াগ্রাম জড়িত। আমি দেখতে পেলাম যে একটি স্টাইল 100% খাঁটি ইউএমএল নয়, এটিও ঠিক। কনকুরেন্সি প্যাটার্নগুলিতে ব্যবহৃত চিত্রগুলি একবার দেখুন । কিছু প্রায় ইউএমএলের মতো (তবে এটি অবশ্যই মানসম্মত নয়):

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

আপনি যদি জাভা থ্রেড সিঙ্ক্রোনাইজেশনে অপেক্ষা / অবহিতের সাথে পরিচিত হন তবে আপনি উল্লিখিত দস্তাবেজ থেকে নীচের ক্রমিক চিত্রটি প্রশংসা করবেন:

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


এটি .NET / C # এও প্রযোজ্য এবং ভিজ্যুয়াল স্টুডিওতে ইউএমএল সিকোয়েন্স ডায়াগ্রামটি বিল্ট-ইন টুলিং রয়েছে নিয়ন্ত্রণ বহিরাগত আচরণগুলি বর্ণনা করার জন্য নিয়ন্ত্রণ প্রবাহের খণ্ড প্রকার সহ ing দেখুন msdn.microsoft.com/en-us/library/dd465153.aspx#Anchor_1
ডেভিড মধ্যে Burg

0

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

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

আমি জানি না এটি যদি বোঝাপড়া করে তবে আপনি সম্ভবত একটি বৃহত মডেল তৈরি করতে পারবেন, প্রতিটি থ্রেডের জন্য সাব মডেলগুলি পুনরায় গ্রুপিং করবেন যেমন মাল্টি-প্রজেক্টস মডেলিংয়ের সাথে আমি কী করি? এই সাহায্য আশা করি।

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