原创 線程池中創建多少線程合適

通俗一點,如何讓你的系統處理更快,(降低延遲,提高吞吐量)。 對應方法進本兩個方向,一個算法,另一個將硬件性能發揮極致。 提升性能就是,提升硬件的利用率。 也就是提升i/o的利用率和cpu的利用率。 你線程池的創建線程條數直接影響你係統的

原创 PHP實現全局session

最近碰到一個問題PHP如何用簡單辦法實現全局的Session   <?php //ini_set('192.168.101.71','192.168.101.62');//多主機共享保存 SESSION ID 的 COOKIE,注意此

原创 Redis以二進制形式存儲對象

代碼已測試 直接測試就可以 ,注意 實體類一定要 實現 Serializable 接口 不然會報錯 import org.springframework.data.redis.core.RedisTemplate; impor

原创 Java 設計模式之代理模式靜態代理

代理模式 分爲靜態代理 和動態代理 ,靜態代理每次都要自己寫代理類很麻煩,且不易管理,動態代理 是java 自動幫你生成一個代理類. 首先靜態代理 首先頂一個接口 public interface OrderService {

原创 Java 設計模式之責任鏈

下邊是我設計的一個簡單模式,非常好理解,不過需要你動手自己敲一下,你會發現這種設計模式非常巧妙,hashMap的源碼設計也是這種方式 責任鏈就是 ,連續發生的一整套邏輯在觸發時,依次按步驟執行.(這種功能你會說新人也能實現幹嘛非要這麼寫,

原创 Java 我對模板模式設計的一點理解

模板設計模式我有一個很巧妙的思考,模板顧名思義,就是比照着這個模板然後拿來就用,特點就是降低設計的複雜度,可以抽象公共行爲,對公共行爲進行高度封裝,但是我思考的是 在模板模式的思維上進行演化,假如有這麼一臺巨型機器,這臺機器十分複雜,如果

原创 Java 設計模式之代理模式動態代理

動態道理分爲 cglib 和jdk 我們先看jdk public interface OrderService { /** *抽象的共同方法 */ void order() throws Thro

原创 手寫簡易HashMap解決Hash碰撞演示

首先定義一個接口,代碼如下 public interface JxdMap<K, V> { int size(); V put(K key, V value); V get(K key); /**

原创 如何優雅解決回調等待問題

先設想一個場景,你中午喫飯,不知道喫什麼好,想着去食堂喫呢還是點外賣,但是因爲公司願意食堂不一定每次都開門,於是你跟同事說,這樣吧你去食堂,如果開門了你告訴我我就過去,如果沒有開門我就點外賣。 這就是一個等待回調問題,你做一個事件A,中間

原创 歸併排序算法(適合大量數據)

歸併排序算法和快速排序算法時間複雜度都爲o(nlogn) ,且需要額外申請一個內存空間,用到的思想都是分治。 下邊是我的代碼可以拿去直接用。 public class MergeSort { public static

原创 開發一個簡單的spring-boot-starter

功能:模擬從redis 中獲取token ,(不真正的鏈接redis 只是生成一個簡單的tokn) 首先建立一個項目 如下圖所示   下邊是我的所有maven 依賴 <dependencies> <dependency>

原创 快速排序實現與如何求解第K大問題

快速排序,這種排序方式時間複雜度平均情況下爲o(nlogn),而且適合數據非常多的排序方法。它採用一種分治思想 ,在執行的過程種就把第K大問題解決了。代碼很簡單但是非常巧妙,不用額外申請內存空間。   代碼如下可以自己跑一下: pack

原创 大小頂錐動態求解中位數以及如何動態求解TopK

問題一:一個有序數組(從大到小) 長度爲13  中位數爲 18  int arr[] = new int[]{1, 3, 5, 6, 11, 14, 18, 21, 27, 29, 31, 56, 59} 但是我們這個數組是動態的,每次

原创 CyclicBarrier從小栗子來理解線程同步

我們生活中有這樣一個情景,任務一是創建訂單,任務二是派單, 當任務一,和任務二完成之後進行覈對賬款操作, 你可以抽象成任務一,和任務二完成之後通知任務三(覈對賬款)去完成。 如下圖所示:  這裏需要注意的是,因爲兩個線程分別執行任務一,

原创 併發編程FutureTask快速上手Demo

首先看一下下邊這段代碼,很簡單直接拿去跑一下,註釋也很全。有兩種方式分別是線程池執行和Trhead執行 import java.util.concurrent.*; public class JxdFutureTask {