java.lang.ref.ReferenceQueue#poll ( )源码实例Demo

下面列出了java.lang.ref.ReferenceQueue#poll ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openjdk-jdk8u   文件: DefaultStyledDocument.java
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
源代码2 项目: JDKSourceCode1.8   文件: DefaultStyledDocument.java
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
源代码3 项目: Java8CN   文件: DefaultStyledDocument.java
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
源代码4 项目: jdk8u-dev-jdk   文件: DefaultStyledDocument.java
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
源代码5 项目: jdk8u_jdk   文件: DefaultStyledDocument.java
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
源代码6 项目: openjdk-jdk9   文件: DefaultStyledDocument.java
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
/**
 * Return a list of stale change listeners.
 *
 * A change listener becomes "stale" when its document is cleaned by GC.
 */
static List<ChangeListener> getStaleListeners(ChangeListener l) {
    List<ChangeListener> staleListeners = new ArrayList<ChangeListener>();
    ReferenceQueue<DefaultStyledDocument> q = queueMap.get(l.getClass());

    if (q != null) {
        DocReference r;
        synchronized (q) {
            while ((r = (DocReference) q.poll()) != null) {
                staleListeners.add(r.getListener());
            }
        }
    }

    return staleListeners;
}
 
源代码8 项目: jdk1.8-source-analysis   文件: Thread.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码9 项目: jdk8u-dev-jdk   文件: ObjectStreamClass.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码10 项目: openjdk-jdk9   文件: ProtectionDomain.java
/**
 * Removes weak keys from the map that have been enqueued
 * on the reference queue and are no longer in use.
 */
private static void processQueue(ReferenceQueue<Key> queue,
                                 ConcurrentHashMap<? extends
                                 WeakReference<Key>, ?> pdMap) {
    Reference<? extends Key> ref;
    while ((ref = queue.poll()) != null) {
        pdMap.remove(ref);
    }
}
 
源代码11 项目: openjdk-8   文件: ActionPropertyChangeListener.java
private void setTarget(T c) {
    ReferenceQueue<JComponent> queue = getQueue();
    // Check to see whether any old buttons have
    // been enqueued for GC.  If so, look up their
    // PCL instance and remove it from its Action.
    OwnedWeakReference<?> r;
    while ((r = (OwnedWeakReference)queue.poll()) != null) {
        ActionPropertyChangeListener<?> oldPCL = r.getOwner();
        Action oldAction = oldPCL.getAction();
        if (oldAction!=null) {
            oldAction.removePropertyChangeListener(oldPCL);
        }
    }
    this.target = new OwnedWeakReference<T>(c, queue, this);
}
 
源代码12 项目: openjdk-jdk8u   文件: Thread.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码13 项目: jdk8u-jdk   文件: ActionPropertyChangeListener.java
private void setTarget(T c) {
    ReferenceQueue<JComponent> queue = getQueue();
    // Check to see whether any old buttons have
    // been enqueued for GC.  If so, look up their
    // PCL instance and remove it from its Action.
    OwnedWeakReference<?> r;
    while ((r = (OwnedWeakReference)queue.poll()) != null) {
        ActionPropertyChangeListener<?> oldPCL = r.getOwner();
        Action oldAction = oldPCL.getAction();
        if (oldAction!=null) {
            oldAction.removePropertyChangeListener(oldPCL);
        }
    }
    this.target = new OwnedWeakReference<T>(c, queue, this);
}
 
源代码14 项目: jdk8u_jdk   文件: ObjectStreamClass.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码15 项目: TencentKona-8   文件: ObjectStreamClass.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码16 项目: jdk8u-jdk   文件: ObjectStreamClass.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码17 项目: jdk8u-jdk   文件: ProtectionDomain.java
/**
 * Removes weak keys from the map that have been enqueued
 * on the reference queue and are no longer in use.
 */
private static void processQueue(ReferenceQueue<Key> queue,
                                 ConcurrentHashMap<? extends
                                 WeakReference<Key>, ?> pdMap) {
    Reference<? extends Key> ref;
    while ((ref = queue.poll()) != null) {
        pdMap.remove(ref);
    }
}
 
private void setTarget(T c) {
    ReferenceQueue<JComponent> queue = getQueue();
    // Check to see whether any old buttons have
    // been enqueued for GC.  If so, look up their
    // PCL instance and remove it from its Action.
    OwnedWeakReference<?> r;
    while ((r = (OwnedWeakReference)queue.poll()) != null) {
        ActionPropertyChangeListener<?> oldPCL = r.getOwner();
        Action oldAction = oldPCL.getAction();
        if (oldAction!=null) {
            oldAction.removePropertyChangeListener(oldPCL);
        }
    }
    this.target = new OwnedWeakReference<T>(c, queue, this);
}
 
源代码19 项目: jdk8u-dev-jdk   文件: Thread.java
/**
 * Removes from the specified map any keys that have been enqueued
 * on the specified reference queue.
 */
static void processQueue(ReferenceQueue<Class<?>> queue,
                         ConcurrentMap<? extends
                         WeakReference<Class<?>>, ?> map)
{
    Reference<? extends Class<?>> ref;
    while((ref = queue.poll()) != null) {
        map.remove(ref);
    }
}
 
源代码20 项目: openjdk-jdk9   文件: CustomLevel.java
private static void waitForGC(List<CustomLevelReference> customRefs,
                              ReferenceQueue<Level> queue)
     throws InterruptedException
{
    while (!customRefs.isEmpty()) {
        Reference<? extends Level> ref2;
        do {
            System.gc();
            Thread.sleep(100);
        } while ((ref2 = queue.poll()) == null);

        // Check garbage collected reference
        if (!customRefs.contains(ref2)) {
           throw new RuntimeException("Unexpected reference: " + ref2);
        }
        CustomLevelReference ref = customRefs.remove(customRefs.indexOf(ref2));
        System.out.println(ref2 + " garbage collected");
        final String name = ref.name;
        Level l;
        try {
            l = Level.parse(name);
            if (!name.equals("SEVERE")
                && !name.equals("INFO")
                || !name.equals(l.getName())) {
                throw new RuntimeException("Unexpected level "
                        + formatLevel(l));
            } else {
                if (l == Level.WARNING || l == Level.INFO
                        || l == Level.SEVERE) {
                    System.out.println("Level.parse found expected level: "
                            + formatLevel(l));
                } else {
                    throw new RuntimeException("Unexpected level "
                        + formatLevel(l));
                }
            }
        } catch (IllegalArgumentException iae) {
            if (!name.equals("WARNING")
                && !name.equals("INFO")
                && !name.equals("SEVERE")) {
                System.out.println("Level.parse fired expected exception: "
                    + iae);
            } else {
                throw iae;
            }
        }
    }
}
 
 方法所在类
 同类方法