ভিজ্যুয়ালভিএম - থ্রেড স্টেটস


86

কেউ আমাকে মধ্যে পার্থক্য ব্যাখ্যা দয়া করে করতে পারেন Sleeping, Wait, Park, এবং MonitorVisualVM থ্রেড যুক্তরাষ্ট্র।

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

এটি আমি খুঁজে পেয়েছি:

Running: থ্রেড এখনও চলছে।
Sleeping: থ্রেডটি ঘুমাচ্ছে (পদ্ধতি ফলন () থ্রেড অবজেক্টে ডাকা হয়েছিল)
Wait: থ্রেডটি একটি মুটেক্স বা বাধা দ্বারা অবরোধ করা হয়েছিল এবং লকটি ছেড়ে দেওয়ার জন্য অন্য থ্রেডের জন্য অপেক্ষা করছে
Park: পার্কযুক্ত থ্রেডগুলিকে অনুমতি না দেওয়া পর্যন্ত স্থগিত করা হয়। থ্রেড আনপার্কিং করা সাধারণত থ্রেড অবজেক্টে পদ্ধতিটি আনপার্ক () কল করে করা হয়
Monitor: থ্রেডগুলি এক্সিকিউশনটি পুনরায় শুরু করতে সত্য হয়ে ওঠার শর্তে অপেক্ষা করছে

যা আমি বুঝতে অক্ষম তা হল রাজ্য উদ্যান, আসলে থ্রেডটি স্থগিত করে কী? থ্রেডটির কার্যকারিতা স্থগিত করেছে বলে কোডটিতে আমি কীভাবে সনাক্ত করব?

কেউ দয়া করে এই বিষয়ে আমাকে গাইড করতে পারেন।

ধন্যবাদ

উত্তর:


53

আমি একটি খুব সুন্দর ডায়াগ্রাম পেয়েছি যা আপনার প্রয়োজন / জানতে চান এমন সমস্ত বর্ণনা করে।

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

  1. নতুন

থ্রেডটি নতুন অবস্থায় রয়েছে যদি আপনি থ্রেড ক্লাসের উদাহরণ তৈরি করেন তবে শুরু () পদ্ধতির অনুরোধের আগে।

  1. চলমান

সূচনা () পদ্ধতির অনুরোধের পরে থ্রেডটি চলমান অবস্থায় রয়েছে, তবে থ্রেড শিডিয়ুলার চলমান থ্রেড হিসাবে এটি চয়ন করেন নি।

  1. চলছে

থ্রেড শিডিয়ুলার এটি নির্বাচন করে থাকলে থ্রেড চলমান অবস্থায় রয়েছে।

  1. সময় অপেক্ষা

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

  • থ্রেড.স্লিপ (ঘুমের সময়)
  • অবজেক্ট.উইট (সময়সীমা)
  • থ্রেড.জয়াইন (সময়সীমা)
  • লকসপোর্ট.পার্কনাওস (সময়সীমা)
  • লকসপোর্ট.পার্কউন্টিল (সময়সীমা)
  1. চালানো যায় না (অবরুদ্ধ)

থ্রেডটি এখনও জীবিত থাকলেও এটি এখন চালানোর যোগ্য নয়।

  1. সমাপ্ত

কোনও থ্রেড সমাপ্ত বা মৃত অবস্থায় থাকে যখন তার রান () পদ্ধতিটি প্রস্থান করে।

আশা করি এটি আপনার প্রশ্নের উত্তর দেয় :)।

পার্কিং:

অনুমতিটি উপলব্ধ না হলে থ্রেড শিডিংয়ের উদ্দেশ্যে বর্তমান থ্রেড অক্ষম করে।

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

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


আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ. আমি এটি দিয়েও গিয়েছিলাম তবে আমার প্রশ্নটি এখনও কোনও উত্তরহীন ছিল। আপনি কি আমার প্রশ্নটি আবার জানতে পারছেন; আমি এটি আপডেট করেছি। পার্কের রাজ্যের বিশেষত একটি উত্তর খুঁজছি।
আলী শাহ আহমেদ

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

@ অলিশাহ আহমদ থ্রেড কার্যকর করার অনুমতি (শর্ত) অপেক্ষা করছে - যদি এই শর্তটি নির্দিষ্ট সময়ের জন্য পূরণ না হয় এবং থ্রেড সমাপ্ত হয় - পিএস। হাহা উত্তর দেওয়ার জন্য দেরি করার জন্য দুঃখিত
ম্যাকিয়েজ সাইগান

40

ভিজুয়ালভিএম জাভা থ্রেডের রাজ্যটিকে ম্যাপ করে (@ ম্যাকিজের উত্তরে বর্ণিত হিসাবে) তার ইউআইতে উপস্থাপিত রাষ্ট্রটিকে নিম্নরূপ:

BLOCKED -> Monitor
RUNNABLE -> Running
WAITING/TIMED_WAITING -> Sleeping/Park/Wait (see below)
TERMINATED/NEW -> Zombie

Sleepingএবং Park(সময় নির্ধারিত) অপেক্ষার নির্দিষ্ট ক্ষেত্রে:

Sleeping: specifically waiting in Thread.sleep().  
Park:     specifically waiting in sun.misc.Unsafe.park() (presumably via LockSupport).

(ম্যাপিংটি সম্পাদনা করা হয় ThreadMXBeanDataManager.java))

জাভা থ্রেডের রাজ্যের একটি সংক্ষিপ্ত (এবং অনুমোদনহীন) আলোচনা এখানে পাওয়া যাবে

যোগ করুন:

এটাও লক্ষণীয় যে, নেটিভ পদ্ধতিতে কলগুলিতে ব্লক করা থ্রেডগুলি JVM তে প্রদর্শিত হয় RUNNABLEএবং তাই ভিজ্যুয়ালভিএম Running(এবং 100% সিপিইউ গ্রহণ হিসাবে) হিসাবে রিপোর্ট করেছে ।


4
এটি সঠিক উত্তর হওয়া উচিত। প্রশ্নটি JVisualVM থ্রেডের রাজ্যগুলি সম্পর্কে ছিল JVM থ্রেডের রাজ্যগুলি নয়।
ডিজিটাল_ইনফিনিটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.