一.32位機和64位機的區別
計算機所處理資料的二進位制最高位為32和64,後者處理器一次可以可以執行64bit資料,基本上cpu效能是前者的兩倍。
二.靜態語言和動態語言的區別
動態語言:資料型別在執行時判斷,如python
靜態語言:資料型別在執行前判斷(編譯),如 c。
三.程序和執行緒的區別
乙個程式就是乙個程序,乙個程序包含許多執行緒。就好比開啟乙個網頁瀏覽器,就是開啟了乙個程序,瀏覽器裡面乙個個網頁就是執行緒,我們把瀏覽器關閉的時候,網頁也隨之結束。
乙個cpu只能處理乙個程序,那我們不由得有這樣乙個疑問:為什麼我們在開啟網易雲**聽歌時候還可以瀏覽網頁?無疑的是,網易雲**和瀏覽器都分別是乙個程序,當然我們這裡不考慮雙核的情況,因為單核也可以做到同時開啟多個程序並工作。那原因是什麼呢?
首先我們明白一點,cpu的處理速度是很高的,這意味著,它可以很快的處理完當前程序,然後處理其他程序,由於處理的時間很短,就好像它是同時處理多個程序一樣。打個比方,武俠電影裡面我們經常看到豬腳一片殘影過去,所有對手同時倒下,這可不是說明豬腳真的有分身,而是對手太菜了,主角乙個乙個地快速解決了所有敵人,造成了彷彿同時擊敗敵人地錯覺。
可是理解到這裡,筆者不由得再次發出疑問:既然cpu可以處理地這麼快,為什麼還要多執行緒呢?
這其實是兩個方面,多執行緒是為了cpu在處理單個執行緒時更高效,是更細緻和進一步地操作。
程序:程式一旦執行就是程序,程序是資源分配的最小單位
執行緒:程式執行的最小單位或者說執行緒是cpu排程的最小單位
我來解釋一下,資源分配,分配的是cpu的資源,通常單核處理器(單核cpu)在同一時刻只能處理乙個程序,所以說程序是資源分配的最小單位。
而cpu處理程式的時候,通過呼叫乙個個執行緒來處理,那你可能問了,豈不是說單核處理器每次只能處理乙個執行緒?不是說只處理乙個程序嗎?對的- -確實是每次處理乙個執行緒,不過由於cpu處理速度太快,所以造成了「同時處理」多個程序或執行緒的錯覺。
四.同步,非同步,併發,並行的區別
你可能會注意到其實對於怎麼處理程序,cpu其實有許多辦法,所以我們再來談談同步、非同步、並行、併發的區別:
好處:同步流程對結果的處理始終和前文保持在乙個上下文內。
壞處:在比如io的時候,無法對其他進
程處理,效率比較低。
非同步:同時處理多個程序,
好處:效率高
併發:在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行。
併發: 在單處理器中多道程式設計系統中,程序被交替執行,表現出一種併發的外部特種;在多處理器系統中,程序不僅可以交替執行,而且可以重疊執行。
五.非同步和多執行緒的區別
非常好,我們已經知曉了一些概念及其區別。但是,看著非同步操作,我們發現和多執行緒似乎很像欸,這是是怎麼回事呢?
多執行緒是程式設計的邏輯層概念,他是併發執行的一段**。多執行緒可以實現執行緒間的切換執行。且多執行緒是我們實現非同步操作的一種手段。
更細一步的解釋我們可以下次來講。
六、http協議中請求方法get和post的區別
最明顯的就是:get用於獲取資料,post用於提交資料。
七、anroid四大元件及其功能
3.broadcast received:廣播接收器,在應用程式之間傳輸資料的元件。
4.content provider:內容提供者,提供第三方應用資料。
某度面試題
用過哪些js模板 單頁面應用 怎麼做快取 css,中間固定,兩邊自適應 1.後台給資料,你是怎麼處理的 2.互動遇到過什麼情況 3.複雜的互動你是怎麼考慮的 4.生成10個a,並給onclick事件 5.10w個資料,顯示到頁面,怎麼考慮 6.跨站網域名稱偽裝,xss onsubmit和submit...
某司面試題
下午匆忙 面試了一下某司,有幾個問題沒有回答上來,總結一下 1 zookeeper資料同步原理 讀取的時候不需要資料同步,寫操作時,follower的followerrequestprocessor會將該操作作為leader.reqest發給leader。leader發起投票,由followers進...
某C 面試題
void getmemory char p void test void 請問執行test函式會有什麼樣的結果?答 程式崩潰。因為getmemory並不能傳遞動態記憶體,test函式中的str一直都是null。strcpy str,helloworld 將使程式崩潰。char getmemory v...