لمحة جافاوية 9: كيف توقف خيوطك بأمان

منذ الإصدارة 1.4 اعتمدت الجافا
أن الدوال stop suspend resume destroy
دوال غير آمنة الاستخدام
وذلك لأن إيقاف الخيط في أثناء عمله
قد يتسبب في مشاكل للمتغيرات التي يتعامل معها
ولهذا ينصح بعدم استخدام الدوال السابقة

كيف أقوم بإيقاف الخيط الخاص بي إذن؟؟
مادامت الدالة run تعمل فالخيط يعمل
لذلك لدينا حل وحيد هو أن نجعل الدالة run تنهي نفسها بنفسها
مثال بسيط على الموضوع

public class MyThread extends Thread {
    private boolean threadDone = false;

public void stop() {

        threadDone = true;

    }

public void run() {

        while (!threadDone) {

            // work here

            // modify threadDone if you want

        }

    }

}

في المثال السابق نلاحظ أن الدالة run
ستنهي عملها عندما يكون المتغير threadDone يساوي true

بما أني قد أنهيت درسي في مدة قصيرة
أحب أن أسأل هل كلمة خيط تمثل تعريباً جيداً لكلمة Thread
هل لديك اقتراح أفضل؟
لا تكن سلبياً وشاركني رأيك

المصدر:
مقالة بعنوان A Safe Way to Stop a Java Thread
http://www.devx.com/tips/Tip/31728

تحياتي
شهيد الأقصى

Tags: , , , , , , , ,

2 تعليقان to “لمحة جافاوية 9: كيف توقف خيوطك بأمان”

  1. يقول omar_cplusplus:

    لكن أحياناً يكون الخيط معقداً و طويلاً يحتاج إلى فترة كي يتم عمله و يقف …
    و إذا كان مثلاً سيوقف هذا الخيط عن طريق الضغط على زر فإن المستخدم سينتظر طويلاً حتى يتم الإيقاف …

  2. يقول admin:

    هناك ما يسمى بمجمع الخيوط ThreadPool
    هذا يحتوي على مجموعة من الخيوط
    تستطيع أن تستخدمها على حسب حاجتك
    وعند الإنتهاء منها ترجعها إلى المجمع
    وهذه مفيدة لتوفير الوقت اللزم لإنشاء خيوط جديدة

    تحياتي

Leave a Reply