<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java 并發教程 > 原文: [https://howtodoinjava.com/java-concurrency-tutorial/](https://howtodoinjava.com/java-concurrency-tutorial/) 簡而言之,[**并發**](https://en.wikipedia.org/wiki/Concurrency_%28computer_science%29)是并行運行多個程序或程序的多個部分的能力。 并發使程序可以通過利用底層操作系統和機器硬件的未開發能力來實現高性能和吞吐量。 例如現代計算機在一個 CPU 中具有多個 CPU 或多個內核,程序可以將所有內核用于處理的某些部分; 因此,與順序處理相比,可以更早地完成任務。 **Java 并發**的主干是線程。 線程是一個輕量級進程,它具有自己的調用棧,但可以訪問同一進程中其他線程的共享數據。 Java 應用程序默認在一個進程中運行。 在 Java 應用程序中,您可以使用許多線程來實現并行處理或并發。 ## 是什么使 Java 應用程序并發? 第一個類是[`java.lang.Thread`](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html)類,您需要使一個 Java 類并發。 此類是 Java 中所有并發概念的基礎。 然后,您具有[`java.lang.Runnable`](https://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html)接口,可以從線程類中抽象出線程行為。 您可以在 Java 1.5 中添加的[`java.util.concurrent`](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html)包中找到構建高級應用程序所需的其他類。 > **閱讀更多:** [Java 并發演化](//howtodoinjava.com/java/multi-threading/java-multi-threading-evolution-and-topics/) ## Java 并發真的那么簡單嗎? 上面的描述給人的印象是并發確實是一個好概念,并且很容易實現。 好吧,不是。 它需要對基本概念有足夠的了解,并且需要對應用程序目標有清晰的了解。 與單線程應用程序相比,并發應用程序通常具有更復雜的設計。 由多個線程訪問共享數據執行的代碼需要特別注意。 錯誤線程同步引起的錯誤很難檢測,重現和修復。 它們通常在較高的環境(例如生產環境)中顯示,有時在較低的環境中不可能復制錯誤。 除了復雜的缺陷外,并發還需要更多資源來運行應用程序。 因此,請確保您的小貓咪有足夠的資源。 ## Java 并發教程 在單個帖子中涵蓋整個 Java 并發幾乎是不可能的。 因此,我在下面的 Java 并發教程中編寫了一篇文章,討論了一個單獨的概念。 瀏覽這些教程,如果您有任何問題或建議,請告訴我。 #### Java 并發基礎 [并發演化](//howtodoinjava.com/java/multi-threading/java-multi-threading-evolution-and-topics/) [什么是線程安全性?](//howtodoinjava.com/java/multi-threading/what-is-thread-safety/) [對象級鎖定和類級鎖定](//howtodoinjava.com/java/multi-threading/thread-synchronization-object-level-locking-and-class-level-locking/) [比較和交換(CAS)算法](//howtodoinjava.com/java/multi-threading/compare-and-swap-cas-algorithm/) [`wait()`,`notify()`和`notifyAll()`方法](//howtodoinjava.com/java/multi-threading/how-to-work-with-wait-notify-and-notifyall-in-java/) #### 之間的區別 [“`Runnable`實現”和“擴展線程”之間的區別](//howtodoinjava.com/java/multi-threading/difference-between-implements-runnable-and-extends-thread-in-java/) [鎖和監視器之間的區別](//howtodoinjava.com/java/multi-threading/multithreading-difference-between-lock-and-monitor/) [`yield()`和`join()`之間的區別](//howtodoinjava.com/java/multi-threading/difference-between-yield-and-join-in-threads-in-java/) [ [`sleep()`和`wait()`之間的區別?](//howtodoinjava.com/java/multi-threading/difference-between-sleep-and-wait/) #### 執行器框架 [執行器框架教程](//howtodoinjava.com/java-5/java-executor-framework-tutorial-and-best-practices/) [`ScheduledThreadPoolExecutor`示例](//howtodoinjava.com/2015/03/25/task-scheduling-with-executors-scheduledthreadpoolexecutor-example/) [`FixedSizeThreadPoolExecutor`示例](//howtodoinjava.com/java/multi-threading/java-fixed-size-thread-pool-executor-example/) [`ThreadPoolExecutor`示例](//howtodoinjava.com/java/multi-threading/java-thread-pool-executor-example/) [`Runnable`+`Future`的示例](//howtodoinjava.com/java/multi-threading/threadpoolexecutor-callable-future-example/) [使用`ThreadPoolExecutor`和`Semaphore`限制任務提交率](//howtodoinjava.com/java/multi-threading/throttling-task-submission-rate-using-threadpoolexecutor-and-semaphore/) [`BlockingQueue`示例](//howtodoinjava.com/java-5/how-to-use-blockingqueue-and-threadpoolexecutor-in-java/) [`UncaughtExceptionHandler`示例](//howtodoinjava.com/java/multi-threading/how-to-restart-thread-using-uncaughtexceptionhandler/) #### 并發 [`ForkJoinPool`示例](//howtodoinjava.com/java-7/forkjoin-framework-tutorial-forkjoinpool-example/) [`CountDownLatch`示例](//howtodoinjava.com/java/multi-threading/when-to-use-countdownlatch-java-concurrency-example-tutorial/) [使用信號量](//howtodoinjava.com/java/multi-threading/control-concurrent-access-to-multiple-copies-of-a-resource-using-semaphore/) [`BinarySemaphore`](//howtodoinjava.com/java/multi-threading/binary-semaphore-tutorial-and-example/) [`Java.util.concurrent.locks.Lock`](//howtodoinjava.com/java/multi-threading/how-to-use-locks-in-java-java-util-concurrent-locks-lock-tutorial-and-example/) [`java.util.concurrent.ThreadFactory`](//howtodoinjava.com/java/multi-threading/creating-threads-using-java-util-concurrent-threadfactory/) [線程局部變量](//howtodoinjava.com/java/multi-threading/when-and-how-to-use-thread-local-variables/) [線程間通信](//howtodoinjava.com/java/multi-threading/inter-thread-communication-using-piped-streams-in-java/) #### 并發集合 [`ConcurrentHashMap`示例](//howtodoinjava.com/java/collections/best-practices-for-using-concurrenthashmap/) [`ConcurrentLinkedDeque`示例](//howtodoinjava.com/java/multi-threading/non-blocking-thread-safe-list-concurrentlinkeddeque-example/) #### 雜項 [創建和解決死鎖](//howtodoinjava.com/java/multi-threading/writing-a-deadlock-and-resolving-in-java/) 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看