原创 單例模式與多線程(一)

在標準的23個設計模式中,單例設計模式在應用中是比較常見的。但在常規的該模式教學資料介紹中,多數沒有結合多線程技術作爲參考,這就造成在使用多線程技術的單例模式時會出現一些意想不到的情況,這樣的代碼如果在生產環境中出現異常,有可能造

原创 設計模式之--單例模式(Singleton)的常見應用場景

單例模式(Singleton)也叫單態模式,是設計模式中最爲簡單的一種模式,甚至有些模式大師都不稱其爲模式,稱其爲一種實現技巧,因爲設計模式講究對象之間的關係的抽象,而單例模式只有自己一個對象,也因此有些設計大師並把把其稱爲設計模

原创 單例模式與多線程(二)

在單例模式與多線程(一)中,介紹了四種在多線程環境下實現的單例模式:餓漢模式、懶漢模式、靜態內部類實現方式和static代碼塊實現方式。下面介紹使用enum枚舉數據類型實現單例和使用序列化與反序列化實現單例。 下面先介紹使用en

原创 多線程-進程和線程概述以及如何使用多線程

1.什麼是進程? 進程是操作系統結構的基礎;是一次程序的執行; 是一個程序及其數據在處理機上順序執行時所發生的活動; 是程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位。 2.什麼是線程? 線程是

原创 停止線程的三種方法

在Java中有以下3種方法可以終止正在運行的線程: 1. 拋異常法; 2. 使用stop方法強行終止線程 3. 使用interrupt方法中斷線程 下面分別對它們進行介紹: 一、拋異常法 拋異常法:顧名思義

原创 多線程-實例變量與線程安全

自定義線程類中的實例變量針對其他線程有共享和不共享之分,這在多個線程之間進行交互時是一個很重要的技術點。 不共享數據的情況 下面通過一個示例來看下數據不共享的情況。 package com.vhqimk.thread;

原创 Java拾遺-編程風格

        一門編程語言,如果沒有自己的編程風格,那麼編寫的代碼會變得難以閱讀,給後期的維護帶來很多影響。而良好的編程風格不僅讓人們閱讀起來容易,還能提高編程效率。在編寫Java程序時,很多時候都會涉及使用一對大括號,比如類體、方法體

原创 interrupt、interrupted和isInterrupted的區別

今天在看到Thread類的isInterrupted方法可以獲取線程的中斷狀態: 於是寫了個例子想驗證一下: public class Interrupt { public static void main(String[

原创 關於i--與System.out.println()聯合使用時可能出現的異常情況

println()方法與i--聯合使用時“有可能”出現異常,雖然println()方法在內部是同步的,但i--的操作卻是在進入println()之前發生的,所以有發生非線程安全問題的概率,如圖 1-4所示。 圖 1-

原创 單例模式

在講單例模式之前首先要知道什麼是設計模式,那麼什麼是設計模式呢? 百度百科是這樣解釋的:設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。簡單地說,設計模式是可以重複利用

原创 Java拾遺-標識符及其命名規則

Java語言中的類名、對象名、方法名、常量名和變量名統稱爲標識符。 爲了提高程序的可讀性,在定義標識符時,要儘量遵循“見名知意”的原則。Java標識符的具體命名規則如下: 一個標識符可以由幾個單詞連接而成,以表明它的意思; 標

原创 線程的優先級

在操作系統中,線程可以劃分優先級,優先級高的線程得到的CPU資源較多,也就是CPU優先執行優先級較高的線程對象中的任務。 設置線程優先級有助於幫助“線程規劃器”確定在下一次選擇哪一個線程來優先執行。 設置線程優先級使用setP

原创 Java筆記--09

以下是SUN提供的反射機制中的類 java.lang.Class; java.lang.reflect.Construct; java.lang.reflect.Filed; java.lang.reflect.Modifier;

原创 線程同步--synchronized詳解

在Java的多線程中有兩種編程模型:異步編程模型和同步編程模型。 假設t1和t2爲兩個線程,則 異步編程模型: t1線程執行t1的,t2線程執行t2的,兩個線程之間誰也不等誰 同步編程模型:t1線程和t2線程執行,當t1線程必須等

原创 Java筆記--03

面向過程與面向對象的區別?(蓋飯、蛋炒飯) 採用面向過程必須瞭解整個過程,每個步驟都有因果關係,每個因果關係都構成了一個步驟,多個步驟就構成了一個系統,因爲存在因果關係每個步驟很難分離,非常緊密,當任何一個步驟出現問題,將會影響