জাভায় ডেডলক কীভাবে পরিচালনা করবেন?



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

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

জাভায় ডেডলক কী?

জাভাতে ডেডলক এমন এক অবস্থা যেখানে দুটি বা ততোধিক থ্রেড চিরতরে অবরুদ্ধ থাকে, একে অপরের জন্য অপেক্ষা করে।





এটি সাধারণত ঘটে যখন একাধিক থ্রেডের একই লকগুলির প্রয়োজন হয় তবে সেগুলি বিভিন্ন ক্রমে গ্রহণ করে। সিঙ্ক্রোনাইজড কীওয়ার্ডের কারণে জাভা অচল অবস্থায় পড়ে situation

এটি নির্দিষ্টটির সাথে যুক্ত লক, বা মনিটরের জন্য অপেক্ষা করার সময় এক্সিকিউটিভ থ্রেডকে ব্লক করে দেয় অবজেক্ট



কিভাবে জাভা জন্য গ্রহন সেট আপ

জাভায় ডেডলক - এডুরেকা

অচল উদাহরণ

সার্বজনীন বর্গের উদাহরণ {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {চূড়ান্ত স্ট্রিং আর 1 = 'এডুরেকা' ফাইনাল স্ট্রিং r2 = 'জাভা' থ্রেড টি 1 = নতুন থ্রেড () {পাবলিক অকার্যকর রান () nch সিঙ্ক্রোনাইজড (আর 1) {সিস্টেম। out.println ('থ্রেড 1: লক করা r1') চেষ্টা করুন read থ্রেড.স্লিপ (100)} ক্যাপ (ব্যতিক্রম ই) {{সিঙ্ক্রোনাইজড (আর 2)। System.out.println ('থ্রেড 1: লকড আর 2')}}} Read থ্রেড টি 2 = নতুন থ্রেড () {সার্বজনীন শূন্য রান () nch সিঙ্ক্রোনাইজ করা (আর 1) {System.out.println ('থ্রেড 2: লক করা r1') চেষ্টা করুন read থ্রেড.স্লিপ (100)} ক্যাচ (ব্যতিক্রম ই) {} সিঙ্ক্রোনাইজড (r2) {System.out.println ('থ্রেড 2: লক করা r2')}}} 1 t1.start () t2.start ()}}
 আউটপুট: থ্রেড 1: লক করা আর 1 থ্রেড 2: লকড আর 2

জাভায় ডেডলক এড়াতে কীভাবে?

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

সাজানো সাজানো সি ++ অ্যারে
  • নেস্টেড লকগুলি এড়িয়ে চলুন - আপনাকে একাধিক থ্রেডে লক দেওয়া এড়াতে হবে, এটি একটি অচলাবস্থার মূল কারণ। আপনি একাধিক থ্রেডে লক দেওয়ার সময় এটি সাধারণত ঘটে থাকে।

  • অপ্রয়োজনীয় লকগুলি এড়িয়ে চলুন - লকগুলি গুরুত্বপূর্ণ থ্রেডগুলিতে দেওয়া উচিত। অযথা থ্রেডগুলিতে লক দেওয়া যা অচল অবস্থায় পড়ে।



  • থ্রেড জয়েন ব্যবহার করে - একটি অচলাবস্থা সাধারণত তখন ঘটে যখন একটি থ্রেড অন্যটির সমাপ্তির জন্য অপেক্ষা করে। এই ক্ষেত্রে, আমরা থ্রেড নিতে সর্বাধিক সময় সহ থ্রেড.জয়িন ব্যবহার করতে পারি।

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

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

সি সি ++ এবং জাভা মধ্যে পার্থক্য

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

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