概述
Library for WWW access in Perl
利用LWP這個包,我們可以很方便的在我們的perl腳本裡面訪問外部的Web伺服器上面的資源。
為什麼要用LWP?
現在的網站套用越做越複雜,要想簡單的寫一個Sockettelnet去用GET指令獲取資源簡直是不可能的,特別是一些需要用口令登入的網站。
如果你只想簡單獲取一些資源而不想寫太多比較複雜的代碼的話,那么就應該選用一個合適的封裝起來的HTTPD模組。
輕量級進程
輕量級進程 (LWP, light weight process) 是一種由核心支持的用戶執行緒。它是基於核心執行緒的高級抽象,因此只有先支持核心執行緒,才能有 LWP 。每一個進程有一個或多個 LWPs ,每個 LWP 由一個核心執行緒支持。這種模型實際上就是恐龍書上所提到的一對一執行緒模型。在這種實現的作業系統中, LWP 就是用戶執行緒。 由於每個 LWP 都與一個特定的核心執行緒關聯,因此每個 LWP 都是一個獨立的執行緒調度單元。即使有一個 LWP 在系統調用中阻塞,也不會影響整個進程的執行。
輕量級進程具有局限性。首先,大多數 LWP 的操作,如建立、析構以及同步,都需要進行系統調用。系統調用的代價相對較高:需要在 user mode 和 kernel mode 中切換。其次,每個 LWP 都需要有一個核心執行緒支持,因此 LWP 要消耗核心資源(核心執行緒的棧空間)。因此一個系統不能支持大量的 LWP 。