原创 Fastdfs+nginx---(一) 安裝前準備

一、 gcc+安裝 1.1 由於fastdsf是用c語言實現的,編譯時需要gcc命令,檢查系統是否安裝了gcc,檢查命令: gcc -v 1.2 安裝命令: cd    /usr/local/src/ rpm –i  libstdc++

原创 FastDFS+nginx---(二)安裝配置測試

一、簡介 FastDFS是一個開源的輕量級的分佈式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站

原创 Java NIO使用及原理分析(三)

轉載自:李會軍•寧靜致遠 在上一篇文章中介紹了緩衝區內部對於狀態變化的跟蹤機制,而對於NIO中緩衝區來說,還有很多的內容值的學習,如緩衝區的分片與數據共享,只讀緩衝區等。在本文中我們來看一下緩衝區一些更細節的內容。 緩衝區的分配

原创 JAVA多線程之(CyclicBarrier)

CyclicBarrier與CountDownLatch類似,一般用於任務拆分,例如一個任務分派多個子任務,然後組任務需要等待所有子任務執行結束後合併子任務返回的結果。具體請參照實例:    package nc.com.thread.o

原创 Java NIO使用及原理分析(二)

轉載自:李會軍•寧靜致遠 在第一篇中,我們介紹了NIO中的兩個核心對象:緩衝區和通道,在談到緩衝區時,我們說緩衝區對象本質上是一個數組,但它其實是一個特殊的數組,緩衝區對象內置了一些機制,能夠跟蹤和記錄緩衝區的狀態變化情況,如果我

原创 JAVA多線程之(join)

 java多線程中,join方法是主線程等待一個子線程結束後再繼續執行主線程後續代碼,wait方法會讓線程進入阻塞狀態,並且會釋放線程佔有的鎖,並交出CPU執行權限,由於wait方法會讓線程釋放對象鎖,研究java Thread類的jo

原创 NC維護雲平臺技術分享之 NC維護雲管家通信框架

NC維護雲管家通信框架誕生背景   NC維護雲平臺在架構設計之初就充分考慮到不同客戶網絡環境情況: 1. NC服務器可以直接連通互聯網。 2. NC服務器所在內網完全與外網隔離。        基於上述網絡情況,同時能爲用戶提供永久

原创 Java NIO使用及原理分析 (四)

轉載自:李會軍•寧靜致遠 在上一篇文章中介紹了關於緩衝區的一些細節內容,現在終於可以進入NIO中最有意思的部分非阻塞I/O。通常在進行同步I/O操作時,如果讀取數據,代碼會阻塞直至有 可供讀取的數據。同樣,寫入調用將會阻塞直至數據

原创 JAVA多線程之(wait notify)

 在JAVA中,並沒有類似於操作系統PV原語操作、進程互斥等相關的方法的。JAVA的進程同步是通過synchronized來實現的,需要說明的是,JAVA的synchronized類似於操作系統概念中的互斥內存塊,在JAVA中的Obje

原创 Java NIO使用及原理分析 (一)

轉載自:李會軍•寧靜致遠 最近由於工作關係要做一些Java方面的開發,其中最重要的一塊就是Java NIO(New I/O),儘管很早以前瞭解過一些,但並沒有認真去看過它的實現原理,也沒有機會在工作中使用,這次也好重新研究一下,順

原创 java多線程之(sleep)

java的Thread.sleep()相當於讓線程睡眠,交出CPU,讓CPU去執行其他的任務。 但是有一點要非常注意,sleep方法不會釋放鎖,也就是說如果當前線程持有對某個對象的鎖,則即使調用sleep方法,其他線程也無法訪問這個對象。

原创 JAVA多線程之(CountDownLatch)

  一個同步輔助類,它允許一個或多個線程一直等待一組其他線程執行結束後再做處理。用給定的計數初始化 CountDownLatch。由於調用了 co

原创 JAVA多線程之(Interrupt)

 interrupt,顧名思義,即中斷的意思。單獨調用interrupt方法可以使得處於阻塞狀態的線程拋出一個異常, 也就說,它可以用來中斷一個正處於阻塞狀態的線程;另外,通過interrupt方法和isInterrupted()方法來停

原创 java多線程之(yield)

yield方法會讓當前線程交出CPU權限,讓CPU去執行其他的線程。它跟sleep方法類似,同樣不會釋放鎖。但是yield不能控制具體的交出CPU的時間, 另外,yield方法只能讓擁有相同優先級的線程有獲取CPU執行時間的機會。 注意,

原创 java多線程之(suspend()、resume())

suspend()和resume()方法,從字面意義上可以瞭解到這兩個方法是一對的,suspend()方法就是將一個線程掛起(暫停),resume()方法就是將一個掛起線程復活繼續執行。參照例子:  package nc.com.thre