(筆記 - 純手敲)java線程基礎


process: 進程
thread: 線程web

線程:  一般使用內部類來建立線程
  1.  extends Thread 中重寫run()方法,實例化thread並調用start();
  2.  implements Runnable 重寫run()方法,用thread 實例化線程並傳入runnable,而後start();安全

併發原理:
  * 多個線程同時運行只是咱們感官上的一種表現。事實上,線程是併發運行的。
    OS將時間劃分爲不少時間片斷,儘量均勻的分配給每個線程,獲取時間片斷的線程被CPU運行,
    而其餘線程所有等待。因此微觀上走走停停,宏觀上都在運行。這種現象叫併發,但不是絕對意義上的「同時發生」。網絡

使用ExecutorService實現線程池
  * 線程池兩個主要做用:
    - 控制線程數量
    - 重用線程多線程

BlockingQueue:雙緩衝隊列
  * 多線程併發時,若須要使用隊列,咱們可使用Queue,可是要解決一個問題就是同步,
    但同步操做會下降併發對Queue操做的效率。
  * BlockingQueue內部使用兩條隊列,可容許兩個線程同時向隊列一個作存儲,一個作取出操做。
    在保證併發安全的同時提升了隊列的存取效率。併發

Socket:一般稱做「套接字」
  * 用於描述IP地址和端口,是一個通訊鏈的句柄。
    在Internet上的主機通常運行了多個服務軟件,同時提供幾種服務。
    每種服務都打開一個Socket,並綁定到一個端口上,不一樣的端口對應於不一樣的服務。
  * 應用程序一般經過Socket向網絡發出請求或者應答網絡請求。
    Socket是創建網絡鏈接時使用的。在鏈接成功時,應用程序兩端都會產生一個Socket實例,
    操做這個實例,完成所需的會話。
  * 經過Socket獲取輸入流和輸出流,這兩個方法是使用Socket通信的關鍵方法。
  * 使用完畢後,要關閉Socket以釋放系統資源。 void close();函數

XML用途:
  * XML 可擴展標記語言(EXtensible Markup Language) 
    - 是獨立於軟件和硬件的信息傳輸工具
  * XML應用與web開發的許多方面,經常使用於簡化數據的存儲和共享。
  * XML簡化數據共享/簡化數據傳輸/簡化平臺的變動。工具

XML元素和屬性
  * XML文檔包含XML元素
  * XML元素指的是從(且包括)開始標籤直到(且包括)結束標籤的部分。
    元素可包含其餘元素/文本或者二者的混合物。元素也能夠擁有屬性。
  * XML對大小寫敏感,這一點不像HTML。
    - 在XML中<Letter>標記和<letter>標記是不同的。
  * CDATA段:<![CDATA[文本內容]]>  特殊標籤中的實體引用都被忽略,全部內容被當成一整塊文本數據對待。.net

XML解析方式 :Dom4J
  * SAX(simple API for XML)是一種XML解析的替代方法。
    相比於DOM,SAX是一種速度更快更有效的方法。
  * DOM(Document Object Model 即文檔對象模型) 經常使用。線程

XPath
  * XPath是一門在XML文檔中查找信息的語言。
    XPath可用來在XML文檔中對元素和屬性進行遍歷。
  * XPath使用路徑表達式在XML文檔中進行導航
  * XPath包含一個標準函數庫
  * XPath是XSLT中的主要元素?
  * XPath是一個W3C標準對象

路徑表達式:
  * 相對路徑和絕對路徑。
    - "." 表示當前節點
    - ".."表示當前節點的父節點
  * 舉例
    - /bookstore :選取根節點bookstore,絕對路徑寫法。
    - bookstore/book :選取全部書店下面的書元素,相對路徑
    - //book :選擇全部book子元素,無論在文檔的哪一個位置
    - bookstore//book :bookstore後代中的book元素
    - //@lang :選取全部名爲lang的屬性
  * 謂語條件:[] 對節點進行進一步篩選
  * 通配符:
    - //*  :選擇文檔中的全部元素節點
    - /*/* :表示選擇全部第二層的元素節點
    - /bookstore/* :表示選擇bookstore的全部元素子節點
    - //title[@*]  :表示選擇全部帶有屬性的title元素

相關文章
相關標籤/搜索