কিভাবে থ্রেড একে অপরের সাথে যোগাযোগ করবেন?
কিভাবে থ্রেড একে অপরের সাথে যোগাযোগ করবেন?
Anonim

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

লোকেরা আরও জিজ্ঞাসা করে, আপনি কীভাবে দুটি থ্রেডের মধ্যে যোগাযোগ করবেন?

আন্তঃ-থ্রেড যোগাযোগের প্রক্রিয়া বোঝা

  1. থ্রেড লক অর্জন করতে প্রবেশ করুন.
  2. লক থ্রেড দ্বারা অর্জিত হয়.
  3. এখন আপনি অবজেক্টে wait() মেথড কল করলে থ্রেড ওয়েটিং স্টেটে চলে যায়।
  4. আপনি যদি notify() বা notifyAll() পদ্ধতিতে কল করেন, তাহলে থ্রেডটি নোটিফাইড স্টেটে চলে যায় (চালানো যায় এমন অবস্থায়)।

দ্বিতীয়ত, থ্রেডে অপেক্ষা করার পদ্ধতি কি? সহজভাবে করা, অপেক্ষা করুন () একটি উদাহরণ পদ্ধতি যে জন্য ব্যবহার করা হয় থ্রেড সিঙ্ক্রোনাইজেশন এটিকে যেকোন অবজেক্টে কল করা যেতে পারে, কারণ এটি জাভাতে সংজ্ঞায়িত করা হয়েছে। lang অবজেক্ট, কিন্তু এটি শুধুমাত্র একটি সিঙ্ক্রোনাইজড ব্লক থেকে কল করা যেতে পারে। এটি বস্তুর উপর লক রিলিজ করে যাতে অন্যটি থ্রেড ঝাঁপ দিতে এবং একটি লক অর্জন করতে পারেন.

উপরন্তু, আপনি কিভাবে আন্তঃথ্রেড যোগাযোগ অর্জন করবেন?

জাভাতে ইন্টার-থ্রেড কমিউনিকেশন

  1. অপেক্ষা করুন()-এটি কলিং থ্রেডকে লকটি ছেড়ে দিতে বলে এবং ঘুমাতে যেতে বলে যতক্ষণ না অন্য কোনো থ্রেড একই মনিটরে প্রবেশ করে এবং নোটিফাই() কল করে।
  2. notify()-এটি একটি একক থ্রেড জাগিয়ে তোলে যা একই বস্তুতে wait() নামে পরিচিত।
  3. notifyAll()-এটি একই বস্তুতে wait() নামক সমস্ত থ্রেডকে জাগিয়ে তোলে।

আপনি কিভাবে জাভা থ্রেডে অপেক্ষা করুন এবং বিজ্ঞপ্তি ব্যবহার করবেন?

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

প্রস্তাবিত: