<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>LinuxSir.cn，穿越时空的Linuxsir! - Java文档</title>
    <link>http://linuxsir.cn/forum.php?mod=forumdisplay&amp;fid=245</link>
    <description>Latest 20 threads of Java文档</description>
    <copyright>Copyright(C) LinuxSir.cn，穿越时空的Linuxsir!</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Wed, 15 Apr 2026 09:22:46 +0000</lastBuildDate>
    <ttl>60</ttl>
    <image>
      <url>http://linuxsir.cn/static/image/common/logo_88_31.gif</url>
      <title>LinuxSir.cn，穿越时空的Linuxsir!</title>
      <link>http://linuxsir.cn/</link>
    </image>
    <item>
      <title>java赋值运算符</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400087</link>
      <description><![CDATA[在Java中，赋值运算符用于将一个值赋给一个变量。下面是Java中常见的赋值运算符：

等号赋值运算符（=）： 最基本的赋值运算符，用于将右边的值赋给左边的变量。

int x = 10; // 将值10赋给变量x
复合赋值运算符： 这些运算符结合了赋值操作和其他操作，使代码更加简 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 22 Feb 2024 05:36:25 +0000</pubDate>
    </item>
    <item>
      <title>java ThreadPoolExecutor源码详解</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400086</link>
      <description><![CDATA[# 几个关键属性//这个属性是用来存放 当前运行的worker数量以及线程池状态的
//int是32位的，这里把int的高3位拿来充当线程池状态的标志位,后29位拿来充当当前运行worker的数量
private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));
//存放任务的 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Wed, 21 Feb 2024 10:35:09 +0000</pubDate>
    </item>
    <item>
      <title>java 关闭线程池</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400085</link>
      <description><![CDATA[关闭线程池

遍历线程池中的所有线程，然后逐个调用线程的interrupt方法来中断线程.

# 关闭方式 - shutdown

将线程池里的线程状态设置成SHUTDOWN状态, 然后中断所有没有正在执行任务的线程.

# 关闭方式 - shutdownNow

将线程池里的线程状态设置成STOP状态, 然后停 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Wed, 21 Feb 2024 10:34:15 +0000</pubDate>
    </item>
    <item>
      <title>java ThreadPoolExecutor详解 三种类型</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400084</link>
      <description><![CDATA[# newFixedThreadPoolpublic static ExecutorService newFixedThreadPool(int nThreads) {
    return new ThreadPoolExecutor(nThreads, nThreads,
                                0L, TimeUnit.MILLISECONDS,
                                new LinkedBlockingQ ..]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Wed, 21 Feb 2024 10:33:09 +0000</pubDate>
    </item>
    <item>
      <title>java Execute原理</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400083</link>
      <description><![CDATA[当一个任务提交至线程池之后:线程池首先当前运行的线程数量是否少于corePoolSize。如果是，则创建一个新的工作线程来执行任务。如果都在执行任务，则进入2.
判断BlockingQueue是否已经满了，倘若还没有满，则将线程放入BlockingQueue。否则进入3.
如果创建一个新的工作 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Wed, 21 Feb 2024 10:31:56 +0000</pubDate>
    </item>
    <item>
      <title>java ThreadPoolExecutor例子</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400003</link>
      <description><![CDATA[Java是如何实现和管理线程池的?从JDK 5开始，把工作单元与执行机制分离开来，工作单元包括Runnable和Callable，而执行机制由Executor框架提供。WorkerThreadpublic class WorkerThread implements Runnable {
     
    private String command;
     
    public Work ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Sat, 03 Feb 2024 17:49:44 +0000</pubDate>
    </item>
    <item>
      <title>java Future使用示例</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400002</link>
      <description><![CDATA[public class FutureDemo {
      public static void main(String[] args) {
          ExecutorService executorService = Executors.newCachedThreadPool();
          Future future = executorService.submit(new Callable() {
              @Override
]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Sat, 03 Feb 2024 17:48:34 +0000</pubDate>
    </item>
    <item>
      <title>java - Future Task 核心方法 - get()</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400001</link>
      <description><![CDATA[核心方法 - get()
//获取执行结果
public V get() throws InterruptedException, ExecutionException {
    int s = state;
    if (s  COMPLETING) {
            if (q != null)
                q.thread = null;//置空等待节点的线程
            return s;
       ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Sat, 03 Feb 2024 17:47:40 +0000</pubDate>
    </item>
    <item>
      <title>java - Future Task 核心方法 - run()</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=400000</link>
      <description><![CDATA[public void run() {
    //新建任务，CAS替换runner为当前线程
    if (state != NEW ||
        !UNSAFE.compareAndSwapObject(this, runnerOffset,
                                     null, Thread.currentThread()))
        return;
    try {
        Callab ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Sat, 03 Feb 2024 17:45:23 +0000</pubDate>
    </item>
    <item>
      <title>java - Future Task 构造函数</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399890</link>
      <description><![CDATA[FutureTask(Callable callable)public FutureTask(Callable callable) {
    if (callable == null)
        throw new NullPointerException();
    this.callable = callable;
    this.state = NEW;       // ensure visibility of callable
}
这个构造函数会把传入 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Mon, 29 Jan 2024 09:46:48 +0000</pubDate>
    </item>
    <item>
      <title>java - Future Task 核心属性</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399889</link>
      <description><![CDATA[//内部持有的callable任务，运行完毕后置空
private Callable callable;

//从get()中返回的结果或抛出的异常
private Object outcome; // non-volatile, protected by state reads/writes

//运行callable的线程
private volatile Thread runner;

//使用Treiber栈保 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Mon, 29 Jan 2024 09:45:57 +0000</pubDate>
    </item>
    <item>
      <title>java - FutureTask源码解析</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399888</link>
      <description><![CDATA[# Callable接口Callable是个泛型接口，泛型V就是要call()方法返回的类型。对比Runnable接口，Runnable不会返回数据也不能抛出异常。
public interface Callable {
    /**
     * Computes a result, or throws an exception if unable to do so.
     *
     * @retur ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Mon, 29 Jan 2024 09:44:45 +0000</pubDate>
    </item>
    <item>
      <title>BlockingDeque 的例子</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399825</link>
      <description><![CDATA[既然 BlockingDeque 是一个接口，那么你想要使用它的话就得使用它的众多的实现类的其中一个。java.util.concurrent 包提供了以下 BlockingDeque 接口的实现类: LinkedBlockingDeque。以下是如何使用 BlockingDeque 方法的一个简短代码示例:

BlockingDeque deque = ne ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 25 Jan 2024 10:17:44 +0000</pubDate>
    </item>
    <item>
      <title>链阻塞、具有优先级的阻塞、同步队列</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399824</link>
      <description><![CDATA[链阻塞队列 LinkedBlockingQueue
LinkedBlockingQueue 类实现了 BlockingQueue 接口。

LinkedBlockingQueue 内部以一个链式结构(链接节点)对其元素进行存储。如果需要的话，这一链式结构可以选择一个上限。如果没有定义上限，将使用 Integer.MAX_VALUE 作为上限。Link ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 25 Jan 2024 10:16:45 +0000</pubDate>
    </item>
    <item>
      <title>延迟队列 DelayQueueDelayQueue</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399823</link>
      <description><![CDATA[实现了 BlockingQueue 接口。
DelayQueue 对元素进行持有直到一个特定的延迟到期。注入其中的元素必须实现 java.util.concurrent.Delayed 接口，该接口定义:public interface Delayed extends Comparable]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 25 Jan 2024 10:14:48 +0000</pubDate>
    </item>
    <item>
      <title>数组阻塞队列 ArrayBlockingQueue</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399822</link>
      <description><![CDATA[ArrayBlockingQueue 类实现了 BlockingQueue 接口。
ArrayBlockingQueue 是一个有界的阻塞队列，其内部实现是将对象放到一个数组里。有界也就意味着，它不能够存储无限多数量的元素。它有一个同一时间能够存储元素数量的上限。你可以在对其初始化的时候设定这个上限， ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 25 Jan 2024 10:13:58 +0000</pubDate>
    </item>
    <item>
      <title>BlockingQueue 的例子</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399821</link>
      <description><![CDATA[这里是一个 Java 中使用 BlockingQueue 的示例。本示例使用的是 BlockingQueue 接口的 ArrayBlockingQueue 实现。 首先，BlockingQueueExample 类分别在两个独立的线程中启动了一个 Producer 和 一个 Consumer。Producer 向一个共享的 BlockingQueue 中注入字符串，而  ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 25 Jan 2024 10:13:03 +0000</pubDate>
    </item>
    <item>
      <title>BlockingQueue和BlockingDeque</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399820</link>
      <description><![CDATA[# BlockingQueueBlockingQueue 通常用于一个线程生产对象，而另外一个线程消费这些对象的场景。下图是对这个原理的阐述:

一个线程往里边放，另外一个线程从里边取的一个 BlockingQueue。
一个线程将会持续生产新对象并将其插入到队列之中，直到队列达到它所能容纳的临 ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Thu, 25 Jan 2024 10:11:05 +0000</pubDate>
    </item>
    <item>
      <title>ConcurrentLinkedQueue示例</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399789</link>
      <description><![CDATA[ConcurrentLinkedQueue示例下面通过一个示例来了解ConcurrentLinkedQueue的使用import java.util.concurrent.ConcurrentLinkedQueue;

class PutThread extends Thread {
    private ConcurrentLinkedQueue clq;
    public PutThread(ConcurrentLinkedQueue clq) {
   ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Wed, 24 Jan 2024 09:49:10 +0000</pubDate>
    </item>
    <item>
      <title>java ConcurrentLinkedQueue 核心函数size</title>
      <link>http://linuxsir.cn/forum.php?mod=viewthread&amp;tid=399788</link>
      <description><![CDATA[size函数

public int size() {
    // 计数
    int count = 0;
    for (Node p = first(); p != null; p = succ(p)) // 从第一个存活的结点开始往后遍历
        if (p.item != null) // 结点的item域不为null
            // Collection.size() spec says to max o ...]]></description>
      <category>Java文档</category>
      <author>xhz</author>
      <pubDate>Wed, 24 Jan 2024 09:48:21 +0000</pubDate>
    </item>
  </channel>
</rss>