আপনি কীভাবে সম্মতি এবং বহু-থ্রেডিং অনুশীলন করবেন? [বন্ধ]


33

আমি সমঝোতা, মাল্টি-থ্রেডিং এবং কীভাবে "ফ্রি লাঞ্চ শেষ" সম্পর্কে পড়ছি । তবে আমার চাকরিতে এমটি ব্যবহারের সম্ভাবনা এখনও পাইনি।

আমি এইভাবে কিছু ওপেন-সোর্স প্রকল্পে অনুশীলন বা অংশগ্রহণের মাধ্যমে সিপিইউ ভারী এমটি সম্পর্কে কিছু অনুশীলন পেতে কী করতে পারি সে সম্পর্কে পরামর্শগুলি খুঁজছি।

ধন্যবাদ।

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


1
সম্ভবত আগ্রহের বিষয়গুলি: প্রোগ্রামারস.স্ট্যাকেক্সেঞ্জার.কম
সেকশনস

5
প্রশ্ন: আপনি কীভাবে সম্মতি এবং বহু-থ্রেডিং অনুশীলন করবেন? A: জাগল দ্বারা
স্টিভেন এ। লো

@ স্টিভেন: আসলেই খুব বেশি দূরে নয়।
রবার্ট হার্ভে

"ফ্রি মধ্যাহ্নভোজ শেষ" লিঙ্কটি মারা গেছে
ব্যবহারকারী

এখনই
ঠিকঠাক

উত্তর:


15

সি # তে থ্রেডিংয়ের বিষয়ে জোসেফ আলবাহারীর নিবন্ধটি আমার দেখা সেরা উত্সগুলির মধ্যে একটি।

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

GETTING STARTED
Introduction and Concepts
Join and Sleep
How Threading Works
Threads vs Processes
Threading’s Uses and Misuses
Creating and Starting Threads
Passing Data to a Thread
Naming Threads
Foreground vs Background
Thread Priority
Exception Handling
Thread Pooling
Thread Pooling via TPL
Thread Pooling Without TPL
Optimizing the Thread Pool
BASIC SYNCHRONIZATION
+ Synchronization Essentials
+ Locking
+ Thread Safety
+ Event Wait Handles
+ Synchronization Contexts
USING THREADS
+ Event-Based Asynch Pattern
+ BackgroundWorker
+ Interrupt and Abort
+ Safe Cancellation
+ Lazy Initialization
+ Thread-Local Storage
+ Timers
ADVANCED THREADING
+ Nonblocking Synchronization
+ Signaling with Wait and Pulse
+ The Barrier Class
+ Reader/Writer Locks
+ Suspend and Resume
+ Aborting Threads
PARALLEL PROGRAMMING
+ Parallel Programming
+ Why PFX?
+ PLINQ
+ The Parallel Class
+ Task Parallelism
+ Working with AggregateException
+ Concurrent Collections
+ SpinLock and SpinWait

আপনি এখানে জোন স্কিটির টিউটোরিয়ালটিও দেখতে পারেন: http://www.yoda.arachsys.com/csharp/threads/


3
আমি আপনার উত্তরে জন স্কিটির সি # বিভাজন পৃষ্ঠাটি যুক্ত করছি: yoda.arachsys.com/csharp/threads

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

আপনি এটি কি করে সে সম্পর্কে আরও ব্যাখ্যা করতে আপত্তি করবেন এবং আপনি কেন জিজ্ঞাসিত প্রশ্নের উত্তর হিসাবে এটি সুপারিশ করবেন? "লিঙ্ক-ওয়ান উত্তরগুলি" স্ট্যাক এক্সচেঞ্জে খুব স্বাগত নয়
মাইন

1
@gnat: আমি আমার উত্তরে সামগ্রীর সারণিটি আটকালাম।
রবার্ট হার্ভে

জন স্কিটির টিউটোরিয়ালটির লিঙ্কটি কাজ করছে বলে মনে হচ্ছে না (আমি একটি অ্যাজুরি 404 পৃষ্ঠা পাচ্ছি) - এটির একটি সংরক্ষণাগার এখানে রয়েছে: web.archive.org/web/20181010053742/http://www.yoda.arachsys.com /…
আর্টঅফ ওয়ারফেয়ার

13

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


3
+1 ভাল বই। এবং এটি অনুশীলনে জাভা কনকুরન્સી, অ্যাকশন নয়।
ট্যালনেক্স

8

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


4

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


2

সম্মতি এবং সমান্তরালতার মধ্যে পার্থক্য রয়েছে। কনক্যুরঞ্জি হ'ল একসাথে একাধিক কাজ করার মতো কাজ, যেমন 2 টি ফাইলে লেখার মতো। সমান্তরালতা হ'ল একাধিক কোর ব্যবহার করে প্রোগ্রামগুলির গতি বাড়ানোর কাজ।

যদিও সম্মতিতে কোনও নিখরচায় দুপুরের খাবার নেই, সমান্তরালভাবে দুপুরের খাবার অবশ্যই আরও নিখরচায় হয়ে উঠছে, এর মতো উন্নতি দেখুন http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell এর


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

যদি সেগুলি ওভারল্যাপ করে তবে আপনি একবারে একাধিক কাজ করার প্রক্রিয়াতে রয়েছেন।
ড্যান_ওয়াটারওয়ার্থ

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

আমি বলিনি যে তারা একই সাথে ঘটছে। আমি বললাম এক সাথে একাধিক কাজ করছি।
ড্যান_ওয়াটারওয়ার্থ

একসাথে একাধিক জিনিস করা একই সাথে দুটি জিনিস করা সমান। যদি নির্দিষ্ট সময়ে একাধিক জিনিস ঘটে থাকে তবে সেগুলি একই সাথে ঘটছে।
আসাদ সাইদুদ্দিন

1

এই সাইটে সাধারণভাবে কিছু ভাল প্রকল্পের উদাহরণ রয়েছে। www.planet-source-code.com

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


আমি অবাক হয়েছি এটি এখনও ভোটগ্রহণ হয়নি। এটিই কেবলমাত্র আমি উত্তর দেখেছি যা "সমান্তরাল এবং সমবর্তী প্রোগ্রামিং কীভাবে প্র্যাকটিস করতে হবে" এই প্রশ্নের উপর দৃষ্টি নিবদ্ধ করে। অন্যান্য প্রতিটি উত্তর "ধারণাগুলি কীভাবে শিখতে হবে" প্রশ্নটিকে সম্বোধন করে, যা একটি আলাদা প্রশ্ন।
জোশিয়াহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.