লুপগুলি চলাকালীন 2 চালানোর সর্বাধিক দক্ষ উপায়


9

বর্তমানে আমি whileআমার উইন্ডো ম্যানেজার, ডিডাব্লুএম এবং স্ট্যাটাস বারটি শুরু করার জন্য দুটি পৃথক লুপ ব্যবহার করি যা এটিতে সিস্টেমের তথ্য প্রিন্ট করে।

এই মুহুর্তে আমার সমাধান হ'ল এগুলি একই স্ক্রিপ্টে ধারাবাহিকভাবে চালানো, যেমন:

while true; do
        $HOME/Scripts/dwm-status
        sleep 2s
    done &
while true; do
    dwm >/dev/null
done

আমি এটিকে নেস্টেড whileলুপ হিসাবে চলতে দেখেছি, এটির মতো:

while true; do
        while true; do
            $HOME/Scripts/dwm-status
            sleep 2s
        done &
        dwm >/dev/null
    done

দ্বিতীয়টি সিপিইউ স্পাইকের কারণ বলে মনে হচ্ছে। দক্ষতার দিক থেকে (কমপক্ষে রিসোর্সগুলিতে কল করা ইত্যাদি), এই দুটি লুপ চালানোর জন্য সর্বোত্তম পন্থা কোনটি এবং কেন?

উত্তর:


6

আমি সুস্পষ্ট কিছু দেখিয়ে দিচ্ছি কিনা তা নিশ্চিত নই, তবে প্রথম উপায়টি এমন দুটি লুপ তৈরি করছে যা চিরকাল চলে, যখন দ্বিতীয়টি অসীম লুপ তৈরি করে যা অসীম লুপ তৈরি করে, তাই আপনি সর্বদা শেষ করতে যাচ্ছেন অসীম লুপের সংখ্যা বাড়িয়ে দেওয়া। এটি একটি অসীম লুপ তৈরি করে, dwm চালায় এবং তারপরে আরও একটি অসীম লুপ তৈরি করে - প্রথম অসীম লুপটি থামেনি। অন্যান্য পাস ইতিমধ্যে চলমান থাকা সত্ত্বেও প্রতিটি পাস আরেকটি ডাব্লুএম-স্ট্যাটাস লুপ তৈরি while trueকরবে ( এগুলি অনির্দিষ্টকালের জন্য চলতে থাকবে)


ধন্যবাদ মাইকেল: না, এটা সন্দেহের চেয়ে স্পষ্ট নয়। এর অর্থ কি প্রথম পদ্ধতির সঠিক উপায়টি রয়েছে, না এটি করার আরও কার্যকর উপায় আছে?
জেসনওয়ারিয়ান

@ জেসনওয়ারিয়ান ভাল, আপনি ঠিক কী করার চেষ্টা করছেন তা আমি নিশ্চিত নই। আপনার একাধিকবার আপনার উইন্ডো ম্যানেজারটি চালানোর দরকার কী? আমার মনে হয় আপনি dwmএকবারে ব্যাকগ্রাউন্ড করতে পারবেন এবং তারপরে dwm-statusএকটি লুপে
চালাবেন

1
এটি আপনাকে প্রোগ্রাম বন্ধ না করেই dwm পুনরায় আরম্ভ করার অনুমতি দেয়। স্বীকারোক্তিজনকভাবে, আমি এটি খুব কম ব্যবহার করি, তবে তা তবে কার্যকর ... ... দেখুন: wiki.archlinux.org/index.php/… "
জেসনওয়ারিয়ান

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