php中nts和ts

PHP語言解析器:官方提供了2種類型的版本,線程安全(TS)版和非線程安全(NTS)版

TS:

TS(Thread-Safety)即線程安全,多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時進行數據加鎖保護,其他線程不能同時進行訪問該數據,直到該線程讀取完畢,其他線程才可訪問使用該數據,好處是不會出現數據不一致或者數據污染的情況,但耗費的時間要比 NTS 長。
//—
PHP以 ISAPI 方式(Apache 常用方式)加載的時候選擇TS版本。

NTS:

NTS(None-Thread Safe)即非線程安全,不提供數據訪問保護,有可能出現多個線程先后或同時操作同一數據的情況,容易造成數據錯亂(即臟數據),一般操作的執行時間要比 TS 短。
//----
PHP以FAST-CGI方式加載運行的時候選擇TNS版,具有更好的性能;

ISAPI:

ISAPI(Internet Server Application Programming Interface), 通常是指被http服務器所加載,以服務器的模塊形式運行,由微 軟提出,故只能在win平臺上運行,如win下的apache,iis[用fast cgi 方式工作更穩定],而linux上php 則以 Apache模塊(常用方式)或者php-fpm(該方式更適合于NGINX+PHP 運行)的方式運行。

CGI:

cgi(Common Gateway Interface):HTTP服務器與客戶端機器上的程序進行“交談”的一種工具,簡而言之,cig就是一種 后臺語言,可以與服務器進行通訊。此時的php是作為一個獨立的程序運行的,特點就是耗費內存。

FAST CGI:

fast cgi是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活后,不會每次都要花費時間去fork一個新進程。這種方式 是與語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中并因此獲得較 高的性能。
FAST-CGI 是微軟為了解決 CGI 解釋器的不足而提出改進方案。當一個請求向 web server 發送請求時,web server總會fork一個CGI解釋器進程進行處理這個請求,進程處理完成之后將結果返回給web server,web server將結果返回并顯示出來,進程結束,當用戶再次請求同一個頁面時,web server又會fork一個新進程進行請求處理,這樣效率會比較低下(CGI被人詬病的主要原因)。而采用FAST-CGI 解釋器的 話,當一個請求執行完畢后不會注銷該進程,而是將改進程進入休眠期,當接收到新的請求時,重新啟用改進程進行處理。FAST-CGI 較CGI 減少了進程的重復創建的資源占用。

進程與線程:一個進程至少存在一個或多個線程。

通常win下 PHP + Apache 組合,以 ISAPI 的方式運行。

而linux下通常分為2種:

Apache + PHP,PHP一般作為Apache 的模塊進行運行;

Nginx + PHP ,以 phpfast cgi的方式,即php-fpm的方式運行,該方式對高并發、高負載有良好的性能體現,因此很多網站采用該方式進行環境的搭建。

Nginx 較Apache 的配置要少很多,因此人為出錯的概率要少一點,但也因此 Apache 的 穩定性要比Nginx 高。

前面廢話了那么多,下面才是重點 …

總結:

以 ISAPI 方式運行就用 TS 線程安全版

以 FAST-CGI 或 PHP-FPM 方式運行就用NTS 非線程安全版

通常 Windows 下 Apache + PHP 選TS ,IIS(fast-cgi) + PHP 選TNS

通常Linux 下 Apache + PHP 選TS,Nginx + PHP 選TNS

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36292.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

您的網站不應該只提供一套通用 API

后端應該提供兩套 API,一套是外部使用的通用 API,服務特定的數據,另一套是自家使用的應用 API,服務特定的頁面。 在當今的web開發中,構建一個提供JSON服務的后端和一個渲染應用程序的前端是很流行的。我不太喜歡&…

【Sklearn】基于決策樹算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于決策樹算法的數據分類預測(Excel可直接替換數據) 1.模型原理1.1 模型原理1.2 數學模型 2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果 1.模型原理 決策樹是一種基于樹狀結構的分類和回歸模型,它通過一系列…

MySql(干貨)

寫這篇博客的目的不是為了將介紹原理,而是為了Sql中的代碼操作屬實太多了,在這里進行一個匯總,方便查閱!!! Sql分類 分類全稱說明 DDL Data Definintion Language數據定義語言,用來定義數據庫對…

微信小程序(由淺到深)

文章目錄 一. 項目基本配置1. 項目組成2. 常見的配置文件解析3. app.json全局的五大配置4.單個頁面中的page配置5. App函數6.tabBar配置 二. 基本語法,事件,單位1. 語法2. 事件3. 單位 三. 數據響應式修改四 . 內置組件1. button2. image3. input4. 組件…

k8s常用資源管理 控制

目錄 Pod(容器組):Pod是Kubernetes中最小的部署單元,可以包含一個或多個容器。Pod提供了一種邏輯上的封裝,使得容器可以一起共享網絡和存儲資源 1、創建一個pod 2、pod管理 pod操作 目錄 創建Pod會很慢 Pod&…

什么是事務,并發帶來的事務問題以及事務隔離級別(圖文詳解)

一、什么是事務? 簡單說就是邏輯上的一組操作,要么都執行,要么都不執行。 舉個例子,假如小明要給小紅轉賬100元,這個轉賬會涉及到兩個關鍵操作:①將小明的余額減少100元。 ②將小紅的余額增加100元 。但…

學習筆記整理-JS-04-流程控制語句

文章目錄 一、條件語句1. if語句的基本使用2. if else if多條件分支3. if語句算法題4. switch語句5. 三元運算符 二、循環語句1. for循環語句2. for循環算法題3. while循環語句4. break和continue5. do while語句 三、初識算法1. 什么是算法2. 累加器和累乘器3. 窮舉法4. 綜合算…

給大家推薦一些文本翻譯、文檔翻譯API接口

最近在項目中要接入文本翻譯和文檔翻譯功能,滿足在工作時使用,又需要了解每個人的使用情況,所以采用了集成翻譯API的方式,我再調研時也查了比較多的資料,總結了我感覺比較好的網站。 推薦網站 1、百度翻譯&#xff0…

設計模式(2)工廠方法模式

一、 1、介紹:定義一個用于創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。簡單工廠模式的最大優點在于工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對于客戶端來說…

odoo-034 float 浮點數比較

文章目錄 前提問題解決總結 前提 odoo 版本:13 python:3.6.9 問題 比較銷售訂單行中已送貨跟已開票,在 tree 視圖顯示搜索后的結果。發現搜索條件為已送貨 > 已開票時,結果中會包含已送貨已開票的。 解決 把這兩個值打印出…

LeNet中文翻譯

Gradient-Based Learning Applied to Document Recognition 基于梯度的學習應用于文檔識別 摘要 使用反向傳播算法訓練的多層神經網絡構成了成功的基于梯度的學習技術的最佳示例。給定適當的網絡架構,基于梯度的學習算法可用于合成復雜的決策表面,該決策…

【Vue-Router】使用 prams 路由傳參失效

報錯信息: [Vue Router warn]: Discarded invalid param(s) “name”, “price”, “id” when navigating. list.json {"data": [{"name": "面","price":300,"id": 1},{"name": "水",&quo…

node獲取微信小程序登錄用戶的openid

前提準備: 1、需要知道AppID(小程序ID) 2、AppSecret(小程序密鑰) 3、調wx.login成功后返回的code 代碼如下: const express require(express); const router express.Router(); const request require(request) const APP_URL https://api.wei…

考研408 | 【計算機網絡】 網絡層

導圖 網絡層: 路由器功能:轉發&路由選擇 數據平面 數據平面執行的主要功能是根據轉發表進行轉發,這是路由器的本地動作。 控制平面 1.傳統方法/每路由器法: 2.SDN方法(Software-Defined Networking) 控制平面中的…

C++并發多線程--多個線程的數據共享和保護

目錄 1--創建并等待多個線程 2--數據共享 2-1--數據只讀 2-2--數據讀寫 2-3--共享數據保護簡單案例 1--創建并等待多個線程 創建多個線程時,可以使用同一個線程入口函數; 多個線程的執行順序與操作系統的調度機制有關,并不和創建線程的先…

html實現商品圖片放大鏡,html圖片放大鏡預覽

效果 實現 復制粘貼&#xff0c;修改圖片路徑即可使用 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>商品圖片放大鏡</title></head><style>body {margin: 0;padding: 0;}#app {padding: 10px;posit…

關于青少年學習演講與口才對未來的領導力的塑造的探析

標題&#xff1a;青少年學習演講與口才對未來領導力的塑造&#xff1a;一項探析 摘要&#xff1a; 本論文旨在探討青少年學習演講與口才對未來領導力的塑造的重要性和影響。通過分析演講和口才對青少年的益處&#xff0c;以及如何培養這些技能來促進領導力的發展&#xff0c;我…

Harmony創建項目ohpm報錯

Harmony創建FA模型的項目時報如下錯&#xff1a; The registry is empty - edit .ohpmrc file or use "ohpm config set registry your_registry" command to set registry.解決方法&#xff1a; File -> Settings -> Build,Execution,Deployment -> Ohpm …

機器學習基礎(五)

決策樹 決策樹是一種預測模型,它代表著對象屬屬性與對象值之間的一種映射關系。樹中的每個節點代表一個對象,分叉路徑(或者叫樹枝)則代表一個屬性值。 決策樹常用方法: 分類樹分析,是一種監督學習,用于預計結果可能為離散類型。 回歸樹分析,用于預計結果為實數。 CART,…

Mysql事務及其隔離機制/隔離級別

mysql事務特性是什么&#xff1f; 原子性(atomicity)&#xff1a;一個事務必須視為一個不可分割的最小工作單元&#xff0c;整個事務中的所有操作要么全部提交成功&#xff0c;要么全部失敗回滾&#xff0c;對于一個事務來說&#xff0c;不可能只執行其中的一部分操作&#xf…