原创 Java多線程-----線程池的使用,原理以及舉例實現(一):Java中的ThreadPoolExecutor類

在前面的文章中,我們使用線程的時候就去創建一個線程,這樣實現起來非常簡便,但是就會有一個問題:   如果併發的線程數量很多,並且每個線程都是執行一個時間很短的任務就結束了,這樣頻繁創建線程就會大大降低系統的效率,因爲頻繁創建線程和銷燬線程

原创 Java線程的優先級

Java線程可以有優先級的設定,高優先級的線程比低優先級的線程有更高的機率得到執行(不完全正確,請參考下面的“線程優先級的問題“)。 記住當線程的優先級沒有指定時,所有線程都攜帶普通優先級。 優先級可以用從1到10的範圍指定。10表示最高

原创 Java多線程-----線程池的使用,原理以及舉例實現(三)(四):使用樣例及如何配置線程池大小

三.使用示例   前面我們討論了關於線程池的實現原理,這一節我們來看一下它的具體使用: public class Test { public static void main(String[] args) {

原创 Java多線程簡單樣例(二):使用lock鎖的生產者消費者問題

import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.loc

原创 Java多線程----線程的同步,鎖和死鎖,問題以及解決方法(例子說明)

一、線程併發同步概念 線程同步其核心就在於一個“同”。所謂“同”就是協同、協助、配合,“同步”就是協同步調昨,也就是按照預定的先後順序進行運行,即“你先,我等, 你做完,我再做”。 線程同步,就是當線程發出一個功能調用時,在沒有得到結果之

原创 深入理解單例模式(附簡單案例)

單例模式在程序設計中非常的常見,一般來說,某些類,我們希望在程序運行期間有且只有一個實例,原因可能是該類的創建需要消耗系統過多的資源、花費很多的時間,或者業務上客觀就要求了只能有一個實例。一個場景就是:我們的應用程序有一些配置文件,我們希

原创 Java多線程---阻塞隊列詳解(舉例說明)

一. 前言   在新增的Concurrent包中,BlockingQueue很好的解決了多線程中,如何高效安全“傳輸”數據的問題。通過這些高效並且線程安全的隊列類,爲我們快速搭建高質量的多線程程序帶來極大的便利。本文詳細介紹了Blocki

原创 Java多線程-----線程池的使用,原理以及舉例實現(二):深入剖析線程池實現原理

 在上一節我們從宏觀上介紹了ThreadPoolExecutor,下面我們來深入解析一下線程池的具體實現原理,將從下面幾個方面講解:   1.線程池狀態   2.任務的執行   3.線程池中的線程初始化   4.任務緩存隊列及排隊策略  

原创 Java多線程----線程的中斷

一、什麼是線程切換,線程阻塞,線程中斷? 線程切換:我們知道,CPU是以時間片進行線程調度的,一個線程在佔有一個分配的時間片之後,CPU就會根據相應的策略進行線程的重新調度,這個過程會很大程度上參考線程的優先級,當然調度策略也會考慮到各個

原创 Java設計模式:單例模式詳解(餓,懶漢式單例)

在Java開發過程中,很多場景下都會碰到或要用到單例模式,在設計模式裏也是經常作爲指導學習的熱門模式之一,相信每位開發同事都用到過。我們總是沿着前輩的足跡去做設定好的思路,往往沒去探究爲何這麼做,所以這篇文章對單例模式做了詳解。 一、單例

原创 什麼是單例模式?單例模式有什麼作用?爲什麼要用單例模式

單例模式 單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創

原创 線程的六種狀態及其狀態的轉換

1.線程自身信息 線程運行的過程會產生很多信息,這些信息都保存在Thread類中的成員變量裏面,常見的有: 線程的ID是唯一標識getId() 線程的名稱:getName(),如果不設置線程名稱默認爲“Thread-xx” 線程的優先級

原创 什麼是工廠模式?工廠模式的作用?爲什麼要使用工廠模式?

工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,並且是通過使用一個共同的

原创 Java工廠模式的簡單樣例

1.抽象的產品類:定義car  交通工具類下: package factory.simple; /** * 抽象產品角色 交通工具接口 * * @author lilin * */ public interface Ca

原创 Java多線程之守護線程

守護線程在沒有用戶線程可服務時自動離開,在Java中比較特殊的線程是被稱爲守護(Daemon)線程的低級別線程。這個線程具有最低的優先級,用於爲系統中的其它對象和線程提供服務。將一個用戶線程設置爲守護線程的方式是在線程對象創建之前調用線程