سؤال

المنفذ Java هو (بقدر ما أفهمه) تجريد مفهوم الصفحات - شيء يمكن أن يقبل وتنفيذ المهام (تنفيذ).

أبحث عن استثناء مماثل لمفهوم الاقتراع. أحتاج إلى استطلاع باستمرار (Dequeue) عناصر من قائمة انتظار محددة (والتي لا ينفذ BlockingQueue)، وتنفيذها والنوم، وتكرر كل هذا حتى اغلاق.

هل هناك تجريد جاهز أو يجب أن أكتب شيئا بمفردي؟

(اقتراحات لقب أفضل هي موضع ترحيب)

هل كانت مفيدة؟

المحلول

الاقتراع سهل:

Thread t = new Thread(new Runnable() {
    public void run() {
        try {
            while (!t.isInterrupted()) {
               Object item;
               while ((item = queue.take()) == null) {//does not block
                   synchronized (lock) { lock.wait(1000L) } //spin on a lock
               }
               //item is not null
               handle(item);
            }
        } catch (InterruptedException e) { }
    }
});
t.start();

ربما تحتاج إلى إعادة صياغة سؤالك لأنني لست متأكدا تماما ما الذي تحاول فعله؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top