併發(Concurrent)和並行(Parallel)和區別(不看後悔,看了必懂)
併發
單個處理器(CPU),輪換執行多個任務,因為輪換的速度比較快,看起來好像多個任務在同時執行一樣
並行
多個處理器(CPU),同時執行多個任務,每個任務分配在一個處理器上執行
併發就像是一個大人給兩個嬰兒餵飯,喂完這個喂那個;並行,就是兩個大人分別同時給兩個嬰兒餵飯
相關推薦
併發(Concurrent)和並行(Parallel)和區別(不看後悔,看了必懂)
併發 單個處理器(CPU),輪換執行多個任務,因為輪換的速度比較快,看起來好像多個任務在同時執行一樣 並行 多個處理器(CPU),同時執行多個任務,每個任務分配在一個處理器上執行 併發就像是一個
hibernate和mybatis的區別(不看後悔,看了必懂)
①hibernate是一個標準的orm(物件關係對映)框架,通過JavaBean和資料庫的對映結構來自動生成sql;mybatis是不完全的orm框架,專注於sql本身,需要程式設計師自己寫sql; ②hibernate對sql的優化和修改比較困難,適合於需求變化不多的中小型專案,如ERP(
synchronized和Lock有什麼區別(不看後悔,看了必懂)
java語言中提供了兩種鎖機制來實現對某個共享資源的同步:synchronized和Lock.其中synchronized使用Object物件本身的notify,wait和notifyAll來實現執行緒之間的排程.而Lock可以使用Condition程序執行緒之間的排程 ①用法不同 sy
sleep和wait方法的區別(不看後悔,看了必懂)
①原理不同 sleep()方法是Thread類的靜態方法,它會使執行緒的執行暫停一段時間,把執行機會讓給其他執行緒,等倒計時時間一到,此執行緒會自動甦醒 wait()是Object類的方法,用於執行緒間的通訊,使當前擁有鎖的程序等待,直到其他執行緒呼叫notify()方法才醒過來 ②
點乘和差乘的區別(姿態解算中的數學運算基礎)
點乘(Dot Product):結果是個數。從代數角度看,先對兩個數字序列中的每組對應元素求積,再對所有積求和,結果即為點積。從幾何角度看,點積則是兩個向量的長度與它們夾角餘弦的積。這兩種定義在笛卡爾座
http1.0和http1.1和http2.0的區別(不看後悔,一看必懂)
http1.0和http1.1的區別 ①HTTP 1.0需要使用keep-alive引數來告知伺服器端要建立一個長連線,而HTTP1.1預設支援長連線。 ②在HTTP1.0中主要使用header裡的If-Modified-Since,Expires來做為快取判斷的標準,H
自旋鎖和自適應自旋鎖(不看後悔,看了必懂)
自旋鎖 所謂自旋,就是指當有另外一個執行緒來競爭鎖時,這個執行緒會在原地迴圈等待,而不是把該執行緒給阻塞,直到那個獲得鎖的執行緒釋放鎖之後,這個執行緒就可以馬上獲得鎖的。鎖在原地迴圈的時候,是會消耗cpu的,就相當於在執行一個啥也沒有的for迴圈。 本來一個執行緒把鎖釋放之後,當前執行緒
樂觀鎖和悲觀鎖(不看後悔,看了必懂)
鎖從巨集觀上分類,分為樂觀鎖和悲觀鎖 樂觀鎖是一種樂觀的思想,每次獲取資料的時候都不擔心資料會被修改,所以每次獲取資料的時候都不會加鎖,但是在更新的時候需要判斷該資料是否被人修改過.如果資料被其他執行緒修改,則不進行資料更新,否則,更新.由於資料沒有加鎖,期間該資料可以被其他執行緒進行讀寫操
MySQL 中的行級鎖、表級鎖和頁級鎖(不看後悔,看了必懂)
行級鎖 行級鎖是 MySQL 中鎖定粒度最細的一種鎖,表示只針對當前操作的行進行加鎖。行級鎖分為共享鎖和排他鎖。 特點:加鎖開銷大,會出現死鎖,鎖定粒度最小,發生鎖衝突的概率最低,併發度最高 頁級鎖 頁級鎖是 MySQL 中鎖定粒度介於行級鎖和表級鎖中間的一種鎖。
zTree(六)非同步傳參和非同步重新整理父節點(不固定值,字串型別)
因為涉及到非同步載入節點重新整理問題,所以好好研究了一下zTree非同步傳參 autoParam:非同步載入時需要自動提交父節點屬性的引數。[setting.async.enable = true
重量級鎖 synchronized(不看後悔,看了必懂)
synchronized關鍵字並非一開始就該物件加上重量級鎖,也是從偏向鎖,輕量級鎖,再到重量級鎖的過程。這個過程也告訴我們,假如我們一開始就知道某個同步程式碼塊的競爭很激烈、很慢的話,那麼我們一開始就應該使用重量級鎖了,從而省掉一些鎖轉換的開銷。 互斥鎖(重量級鎖)也稱為阻塞同步、悲觀鎖
輕量級鎖(不看後悔,看了必懂)
輕量級鎖是由偏向鎖升級來的,偏向鎖執行在一個執行緒進入同步塊的情況下,當第二個執行緒加入鎖爭用的時候,偏向鎖就會升級為輕量級鎖(又叫做鎖膨脹); 輕量級鎖也被稱為非阻塞同步、樂觀鎖,因為這個過程並沒有把執行緒阻塞掛起,而是讓執行緒空迴圈等待,序列執行。 輕量級鎖適用於那些同步
偏向鎖(不看後悔,看了必懂)
它會偏向第一個訪問鎖的執行緒,如果在執行過程中,同步鎖只有一個執行緒訪問,不存在多執行緒爭用的情況,則執行緒是不需要觸發同步的,這種情況下,就會給執行緒加一個偏向鎖。 如果在執行過程中,遇到了其他執行緒搶佔鎖,則持有偏向鎖的執行緒會被掛起,JVM會消除它身上的偏向鎖,將鎖恢復到標準的輕
談談你對AtomicInteger的理解(不看後悔,看了必懂)
AtomicInteger是一個提供原子操作的Integer類,通過執行緒安全的方式操作加減。十分適合高併發情況下的使用 對於全域性變數的數值型別操作 num++,若沒有加synchronized關鍵字則是執行緒不安全的,num++解析為num=num+1,明顯,這個操作不
如何執行緒安全地實現一個計數器(不看後悔,看了必懂)
i++是執行緒安全的嗎 i++和++i的執行緒安全分為兩種情況: 1、如果i是區域性變數(在方法裡定義的),那麼是執行緒安全的。因為區域性變數是執行緒私有的,別的執行緒訪問不到,其實也可以說沒有執行緒安不安全之說,因為別的執行緒對他造不成影響。 2、如果i是全域性變
ReentrantLock可重入鎖(不看後悔,看了必懂)
ReentraantLock是通過一個FIFO的等待佇列來管理獲取該鎖所有執行緒的。在“公平鎖”的機制下,執行緒依次排隊獲取鎖(先等待的執行緒先獲得鎖);而“非公平鎖”在鎖是可獲取狀態時,不管自己是不是在佇列的開頭都會獲取鎖。 ReentrantLock和synchroni
終止執行緒的方法(不看後悔,看了必懂)
在java語言中,可以使用stop()方法和suspend()方法來終止執行緒的執行. 當使用Thread.stop()來終止執行緒時,它會釋放已經鎖定的所有監視資源,具有不安全性 suspend()方法不會釋放鎖,容易發生死鎖(兩個或者兩個以上程序在執行過程中,因爭奪資源而造成程序間互
程序的狀態(不看後悔,看了必懂)
就緒態:程序已經準備好,只要分配到CPU就可以執行 執行態:程序處於就緒態被排程後,進出進入執行狀態 阻塞狀態:正在執行的程序由於某些事件(I/O請求,申請緩衝區失敗)而暫時無法執行,程序進入阻
idea——建立ssm框架專案(不使用maven,自己匯入jar包)
在idea建立ssm專案 1.建立ssm專案在idea中: 2.設定: 其餘的和普通的javaweb專案差不多,如果不懂,請看: https://blog.csdn.net/weixin_43075298/article/details/85678844 注意: 1.
jena 簡單查詢(不帶推理,直接讀取owl檔案)
//用的是protege 裡面的people demo import com.hp.hpl.jena.rdf.model.*; import com.hp.hpl.jena.ontology.*; import com.hp.hpl.jena.query.Que