㈠ php的介紹及Php有什麼優勢
優點和缺點:
1:學習簡單,做為一種腳本語言,學習簡單是必須的!同樣的,作為一種腳本語言,效率問題,永遠是痛點,特別是復雜的運算
2:語法較隨意,同樣的,語法的隨意性,使得在閱讀沒有注釋的代碼時,無法很清楚的明白到底是什麼意思,比如java,變數的類型是固定的,而php則前面可以是string,後面直接成array都沒關系
3:php本身不支持多線程(swoole除外)
4:php沒有直接操作內存的函數(至少本人不知道,6還沒研究,不知道有沒)
5:作為一種弱語言,php也算很好了,比之perl等也不錯
6: php可以說應用范圍很狹窄(個人理解,除了網頁之外,好像沒什麼其他用途了,如果內嵌在游戲中那麼python是不錯的選擇,cli也能湊合,),當然,我把php做的server-api這種模式也理解為是網頁!
㈡ php在執行一個耗時的mysql時無法進行其他mysql操作
建議先使用外部工具連接資料庫試試,看是否是資料庫支撐不了大規模數據的寫入查詢等等。檢查資料庫的連接數,php配置的連接數
如果是連接數滿了,簡單粗暴的方式,修改連接數配置。如果是mysql所消耗的內存服務問題,就要修改mysql內存,加大配置。優化一下耗時長的業務,這個和程序端的代碼,是否為多線程沒有太大的關系,從你發出來的情況,就是1個請求耗時太長,讓後其他請求沒有返回,要麼是web服務內存吃緊,要麼是mysql服務壓力過大,連接數用滿的情況,應該不太可能。
㈢ 北大青鳥設計培訓:PHP中的(偽)多線程與多進程
利用WEB伺服器本身的多線程來處理,從WEB伺服器多次調用我們需要實現多線程的程序。
PHP中也能多線程了,那麼問題也來了,那就是同步的問題。
廈門電腦培訓http://www.kmbdqn.cn/知道PHP本身是不支持多線程的,所以更不會有什麼像Java中synchronize的方法了。
那我們該如何做呢?1.盡量不訪問同一個資源。
以避免沖突。
但是可以同時像資料庫操作。
因為資料庫是支持並發操作的。
所以在多線程的PHP中不要向同一個文件中寫入數據。
如果必須要寫的話,用別的方法進行同步。
如調用flock對文件進行加鎖等。
或建立臨時文件,並在另外的線程中等待這個文件的消失while(file_exits('xxx'));這樣就等於這個臨時文件存在時,表示其實線程正在操作。
如果沒有了這個文件,說明其它線程已經釋放了這個。
2.盡量不要從runThread在執行fputs後取這個socket中讀取數據。
因為要實現多線程,需要的用非阻塞模式。
即在像fgets這樣的函數時立即返回。
。
所以讀寫數據就會出問題。
如果使用阻塞模式的話,程序就不算是多線程了。
他要等上面的返回才執行下面的程序。
所以如果需要交換數據最後利用外面文件或數據中完成。
實在想要的話就用socket_set_nonblock($fp)來實現。
說了這么多,倒底這個有沒有實際的意義呢?在什麼時候需要這種用這種方法呢?答案是肯定的。
大家知道。
在一個不斷讀取網路資源的應用中,網路的速度是瓶頸。
如果采多這種形式就可以同時以多個線程對不同的頁面進行讀取。
㈣ php多線程
以下都是轉載, 簡單說下, php是不支持多線程的。。。。
PHP語言本身是不支持多線程的. 總結了一下網上關於PHP模擬多線程的方法, 總的來說, 都是利用了PHP的好夥伴們本身所具有的多線程能力. PHP的好夥伴指的就是linux和APACHE啦, LAMP嘛.
另外, 既然是模擬的, 就不是真正的多線程. 其實只是多進程. 進程和線程是兩個不同的概念. 好了, 以下方法都是從網上找來的.
1. 利用LINUX操作系統
<?php
for ($i=0;$i<10;$i++) {
echo $i;
sleep(5);
}
?>
上面存成test.php, 然後寫一段SHELL代碼
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
php -q test.php &
done
2. 利用fork子進程(其實同樣是利用LINUX操作系統)
<?php
declare(ticks=1);
$bWaitFlag = FALSE; /// 是否等待進程結束
$intNum = 10; /// 進程總數
$pids = array(); /// 進程PID數組
echo ("Startn");
for($i = 0; $i < $intNum; $i++) {
$pids[$i] = pcntl_fork();/// 產生子進程,而且從當前行之下開試運行代碼,而且不繼承父進程的數據信息
if(!$pids[$i]) {
// 子進程進程代碼段_Start
$str="";
sleep(5+$i);
for ($j=0;$j<$i;$j++) {$str.="*";}
echo "$i -> " . time() . " $str n";
exit();
// 子進程進程代碼段_End
}
}
if ($bWaitFlag)
{
for($i = 0; $i < $intNum; $i++) {
pcntl_waitpid($pids[$i], $status, WUNTRACED);
echo "wait $i -> " . time() . "n";
}
}
echo ("Endn");
?>
3. 利用WEB SERVER, PHP不支持多線程, APACHE可是支持的, 呵呵.
假設我們現在運行的是a.php這個文檔. 但是我在程式中又請求WEB伺服器運行另一個b.php
那麼這兩個文檔將是同時執行的.
<?php
function runThread()
{
$fp = fsockopen('localhost', 80, $errno, $errmsg);
fputs($fp, "GET /a.php?act=brnrn");
fclose($fp);
}
function a()
{
$fp = fopen('result_a.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");
fclose($fp);
}
function b()
{
$fp = fopen('result_b.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");
fclose($fp);
}
if(!isset($_GET['act'])) $_GET['act'] = 'a';
if($_GET['act'] == 'a')
{
runThread();
a();
}
else if($_GET['act'] == 'b') b();
?>
當然啦,也可以把需要多線程處理的部分交給JAVA去處理, 然後在PHP里調用, 哈哈.
<?php
system('java multiThread.java');
?>
㈤ PHP的優缺點是什麼
HP應該算是現在大中小非專業網站企業會優先使用的網站建設編程語言,相對於ASP和JSP來說,PHP在在很多方面更適合個人以及小型企業做開發,這主要是因為PHP本身獨特的優勢導致的,那麼下面小編就來為大家盤點PHP得到眾多企業支持的原因。
PHP的優勢包括:
1、開放源代碼
由於PHP開放源代碼,因此基本上可以在網路上找到適合自己的源代碼。
2、免費性
和其它技術相比,PHP本身免費,並且也是開源代碼。
3、快捷性
PHP程序開發快,運行快,技術本身學習快。由於PHP可以被嵌入於HTML語言,新詞相對於其他語言來說編輯簡單,實用性強,更適合初學者。
4、跨平台性強
由於PHP是運行在伺服器端的腳本,因此可以在多種平台上得到應用,包括了UNIX、LINUX、WINDOWS、Mac OS等系統。
5、效率高
PHP由於消耗相當少的系統資源,因此工作效率更高。
6、圖像處理
一般來說,PHP動態創建圖像,而且目前PHP圖像處理默認使用GD2。因此也可以配置為使用image magick進行圖像處理。
7、面向對象
在PHP4,PHP5 中,面向對象方面都做出了很大的改進,因此PHP完全可以用來開發大型商業程序。
8、專業專注
PHP同為類C語言,而且更重要的就是PHP以支持腳本語言為主。
上面介紹的八點內容就是關於PHP被廣大企業使用的優勢,其實PHP相對於其它幾種語言來說,更適合初學者學習和使用,因此想要入門的朋友可以多找一些材料來學習。
㈥ PHP 到底是單進程還是多進程
默認是單進程,可以支持多進程
㈦ c語言和PHP,學哪個好
計科專業從事嵌入式開發多年,從現在的市場行情以及就業的機會上講php的就業空間還是大於C語言,但並不意味著C語言就已經被淘汰掉了,相反因為高級語言在應用領域使用的范圍比較廣泛,倒是顯得很多底層的編程語言成了稀缺的物種,畢竟對於底層的維護也是一項很重要的工作,況且C語言的使用范圍並不是很狹窄,特別是在嵌入式領域還是被廣泛的使用中,像華為這種通訊設備廠家對於C語言的使用概率還是非常高的,所以不能簡單的認為哪種編程語言最好,還是取決於個人的愛好和興趣,如果真的對於哪種編程語言就是感興趣,就可以忽略市場大方向的需求了,因為只要還在市場存在的編程語言證明其還有存在的價值。
而且編程語言之間是相通的,如果已經掌握了一種編程語言在很短的時間內就能切換到另外一種編程語言,畢竟編程思想和編程模式有著太多的相似之處,比如利用php編程編寫網路的並發代碼,如果已經掌握了大部分的模式再切換到C語言去編程,雖然使用的工具有很大的差異,但是起碼從內心上有底,畢竟已經有成熟的案例可以對照學習的過程也能加快好幾倍,所以程序員的能力的強弱比較的不是掌握編程語言的數量關鍵還是實際編程中解決問題的能力,解決問題的能力顯得比較籠統,像在項目選擇使用什麼樣子的框架,編程過程中遇到編譯不過的語法,解決客戶提出棘手的問題,這些都屬於解決問題的能力,所以和這些能力相比編程語言已經弱化許多了。
對於這兩種編程語言的選擇,簡單做個介紹如果是想從事後台伺服器的php是必選的編程語言,如果是想從事底層的開發C語言是必備編程語言,先要從方向上明確這樣在選擇的時候不至於犯很大的錯誤,其實在早期的php編程中也是接近於面向過程的編程,在語法習慣上也是和C語言有很多相似之處,但後續編程語言基本上向著面向對象的趨勢在發展所以後來轉向面向對象的編程了,相對來講php屬於集成化的編程語言在實際編程過程中可以有很多的類庫來使用,對於新手來講php早期更加容易做出一些復雜的功能。
C語言基本上接近於比較原始的編程語言,想要實現很多功能都需要自己動手去寫,但是C語言最大的優勢在執行的效率高,而且編程語法非常的靈活所以講C語言對於底層編程特別的合適,像操作系統代碼都是C語言來完成,執行的效率高而且還能靈活多變,但C語言在圖形編程方面需要藉助於很多成型的圖形庫,還是更加適合在後台默默的工作,現在比較流行大型演算法從效率的角度考慮還是以C語言為主要的編寫為主。
在早期大學教程中第一門編程相關的編程語言幾乎都是C語言,隨著高級語言的流行現在大學的開設的編程語言的種類也多了,再加上編程語言向著集成化的發展,讓很多人覺得C語言都是老古董的存在了,個人還是建議如果想長期在編程行業去工作,不妨對這門編程語言學習掌握一下,對於了解底層實現原理還是有著極大的好處,知其然知其所以然,對於了解的編程的框架還是有著極大的好處的,所以如果有時間建議掌握C語言,從知識的縱觀程度上還是有著極大的好處的,希望能幫到你。
作為一名IT從業者,同時也是一名計算機專業的教育工作者,我來回答一下這個問題。
首先,C語言和PHP語言都是目前IT行業內應用比較普遍的編程語言,C語言主要應用在嵌入式開發、操作系統開發和容器開發等領域,而PHP則主要應用於Web開發領域,這兩門編程語言在應用場景上幾乎沒有交叉,所以也相對比較好選擇。
對於計算機基礎比較薄弱的初學者來說,學習PHP是比較不錯的選擇,一方面PHP語言比較容易學習和掌握,另一方面PHP相關的開發崗位也比較多,比較容易實現就業。雖然相對於Java和Python等編程語言來說,PHP語言的應用場景比較集中,主要應用在Web開發領域,但是由於PHP在Web開發領域的應用非常普遍,所以就業機會也相對比較多。
# 科技 V計劃# PHP是主要適用於Web開發領域腳本語言
C語言應用廣泛:操作系統Windows(c艹)、Linux、 游戲 引擎、驅動程序
php與c語言的不同點
1、PHP是伺服器腳本語言,必須要運行在能夠解析PHP的伺服器上
2、C語言是低級語言,PHP是高級語言
3、C語言是強類型語言,PHP是弱類型語言,這一點從兩者語法的差別可以看出
4、PHP主要用來做web應用,C語言主要用來做計算機底層的應用,另外C語言功能比PHP強大很多,你應該知道PHP就是用C語言寫的
5、PHP不支持多線程
6、PHP去掉了C語言中關於指針比較難把握的運算,使得PHP比C容易學習和掌握
7、PHP的基本變數類型有整型(Integer)、浮點型(Float)、字元串(String)(這是C沒有的,但C++有String類)以及布爾型(Boolean)(C沒有,但是C++有)。構造類型有數組和對象。此外還有兩個特殊類型:空值(NULL)(C也有)和資源(Resource)。
8、在PHP中定義常量的方式在學習C的人看來有點不可思議,竟然是用一個define函數實現的,PHP的函數實在是太厲害了,後面我們會看到定義數組也是由函數完成的,我們真得感謝PHP無比豐富的函數庫,它們成就了PHP的易用和強大。
計科專業從事嵌入式開發多年,從現在的市場行情以及就業的機會上講php的就業空間還是大於C語言,但並不意味著C語言就已經被淘汰掉了,相反因為高級語言在應用領域使用的范圍比較廣泛,倒是顯得很多底層的編程語言成了稀缺的物種,畢竟對於底層的維護也是一項很重要的工作,況且C語言的使用范圍並不是很狹窄,特別是在嵌入式領域還是被廣泛的使用中,像華為這種通訊設備廠家對於C語言的使用概率還是非常高的,所以不能簡單的認為哪種編程語言最好,還是取決於個人的愛好和興趣,如果真的對於哪種編程語言就是感興趣,就可以忽略市場大方向的需求了,因為只要還在市場存在的編程語言證明其還有存在的價值。
作為最古老的編程語言之一,C依然高居榜首,這歸功於其可移植性以及微軟、Oracle和蘋果等 科技 巨頭採用它。它與幾乎所有系統兼容, 很適合操作系統和嵌入式系統。 由於運行時環境相對小巧,因此C是保持這種系統精簡的完美選擇。 強烈建議初學者學C,它實際上是編程語言的通用語言,已催生出了同樣很受歡迎的衍生語言,比如C++和C#。
用於Web開發的PHP,據TIOBE顯示,PHP在TIOBE最受歡迎的編程語言排行榜中位居第七,取代JavaScript成為更受歡迎的腳本語言。PHP主要用在伺服器端上用於Web開發,約占網站總數的80%。Facebook最初使用的就是PHP,PHP在WordPress內容管理系統中扮演的角色讓它很受歡迎。PHP提供了幾個框架,比如Laravel和Drupal,幫助開發人員更快地構建應用程序,擁有更高的可擴展性和可靠性。因此, 如果你在找Web開發方面的職位,PHP是不錯的選擇。
單看熱度的,話還是C語言更好一些,而且PHP還是要有C的基礎才好學一些,要做程序員的話只單學一個怕是不夠用,哈哈哈哈哈哈嗝,還是學C吧
㈧ php是單線程單進程的么
每個PHP文件的執行是單線程的,但是,伺服器(apache/nigix/php-fpm)是多線程的。每次對某個PHP文件的訪問伺服器都會創建一個新的進程/線程,用來執行對應的PHP文件.
㈨ php能不能開線程的
不能,php本身是不支持多線程的,或者說沒有多線程的概念。如果非要開線程的話,可以藉助linux的縣城概念,來模擬多線程。