sychronized的兩種使用和它們的區別
第一種
public sychronized void test(){
}
第二種
private final Object lock=new Object();
public void test(int i){
sychronized (lock){
if(i<0){
lock.wait();
}
lock.notifyAll();
}
}
兩種方法多能實現方法互斥,如果方法內不需要判定,比如i<0的情況不需要排除,就用第一種,但是如果需要排除i<0的情況,就用第二種,如果第一種方法裡有if(i<0){}當程式執行到這裡,就會產生死鎖,別的執行緒進不來,程式卡死在if(i<0){}裡
相關推薦
spring的@Autowired 和 @Resource 兩種註解的區別
在面試的時候,面試官問我@Autowired 和 @Resource 兩種註解的區別,當時懵逼了,雖然是經常用,但具體區別還真是不知道。然後搜百度記錄下。。。 一、相同點 1. 都是用來裝配 Bean,都可以
離散化的思想和它的兩種程式碼與區別
離散化是什麼:一些數字,他們的範圍很大(0-1e9),但是個數不算多(1-1e5),並且這些數本身的數字大小不重要,重要的是這些數字之間的相對大小(比如說某個數字是這些數字中的第幾小,而與這個數字本身大小沒有關係,要的是相對大小)(6 8 9 4 離散化後即為 2 3 4 1
SQL Server中掃描(scan)和查詢(seek)這兩種演算法的區別
SQL SERVER使用掃描(scan)和查詢(seek)這兩種演算法從資料表和索引中讀取資料。這兩種演算法構成了查詢的基礎,幾乎無處不在。Scan會掃描並且返回整個表或整個索引。 而seek則更有效率,根據謂詞(predicate),只返索引內的一個或多個範圍內的資料。
ModelFirst ,DBFirst兩種設計模型的區別和兩種更新的區別
一、EF 的三種設計模型CodeFirst,ModelFirst ,DBFirst三種 在軟體的實際開發中最常用的就是後兩種。下面簡單介紹兩種設計模型的區別和兩種更新的區別,如果你還不知道如何進行三種設計模式的設計,請參考我另外的幾篇文章: 1、ModelFirst 顧名思
ajax中get和post兩種請求的區別
Ajax(Asynchronous Javascript And XML)即非同步JavaScript和XML,通過在後臺與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新;這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新(即區域性重新整理);而
實現多執行緒的兩種方式,區別和好處有哪些
一種是擴充套件java.lang.Thread類 另一種是實現java.lang.Runnable介面 區別就是:第一種是擴充套件,第二種是實現 好處就是: 在實際開發中通常以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類可以避免繼承的侷
c++建構函式成員初始化中賦值和初始化列表兩種方式的區別
先總結下: 由於類成員初始化總在建構函式執行之前 1)從必要性: a. 成員是類或結構,且建構函式帶引數:成員初始化時無法呼叫預設(無參)建構函式 b. 成員是常量或引用:成員無法賦值,只能被初始化 2)從效率上: 如果在類建構函式裡賦值:在成員
Java中x+=y和x=x+y兩種實現的區別
先看下邊兩段程式碼,各有什麼錯? 例一: short s1 = 1; s1 = s1 + 1; 例二: short s1 = 1; s1 += 1; 第一段程式碼無法通過編譯,由於 s1+1 在運算時會自動提升表示式的型別至 int 型,再賦值給 short 型別的 s1
SOCK_STREAM和SOCK_DGRAM兩種型別的區別
sock_stream 是有保障的(即能保證資料正確傳送到對方)面向連線的SOCKET,多用於資料(如檔案)傳送。 sock_dgram 是無保障的面向訊息的socket , 主要用於在網路上發廣播資訊。 SOCK_STREAM是基於TCP的,資料傳輸比較有保障。SOCK
js的call() ,apply() 兩種方法的區別和用法,最白話文的解釋,讓枯燥滾粗!
背景:今天群裡有 妹子(我就不指名道姓嘍)說:百度了一圈calll()函式和apply()函式,感覺還是糊里糊塗然後群裡熱鬧了,各種表情包,各種殷勤,你懂的!正好我前幾天剛又重新翻了一遍 那本 600多
兩種Context的區別,Activity 和Application
Application(getApplicationContext()) Context是和應用程式關聯的,在應用的生命週期內總是一樣的。 Activity(this) Context是關聯在某個獲得上的隨著Activity的銷燬而被銷燬多次。 在觀看黑馬視訊的時候,老
Apache伺服器no_ssl和openssl兩種型別的區別
OpenSSL是表示帶有OpenSSL模組,利用OpenSSL就可以給Apache配置SSL安全連結的,也就是使用https方式進行訪問; no ssl則表示不帶OpenSSL模組,無法用於SSL安全
POI操作excel詳解,HSSF和XSSF兩種方式的區別
HSSF方式: [java] view plain copy print?package com.tools.poi.lesson1; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.
關於網頁授權的兩種scope的區別說明
自動 info 授權 由於 說明 open api 業務 pen 關於網頁授權的兩種scope的區別說明 1、以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,並且是靜默授權並自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往
vue 路由傳參 params 與 query兩種方式的區別
fine 分享 文件 路由 註意 undefine 方法 router 由於 初學vue的時候,不知道如何在方法中跳轉界面並傳參,百度過後,了解到兩種方式,params 與 query。然後,錯誤就這麽來了: router文件下index.js裏面,是這麽定義路由
css實現透明的兩種方式及其區別
白色 class 子節點 new 透明度 區別 方式 ron pre 一、opacity:0~1 值越高,透明度越低,下面為示例 選擇器{ opacity:0.5 } 選擇器匹配到的節點們,包括節點們的孩子節點,都會實現%50透明,另 0.5 可直
controller 有兩種寫法,討論一下兩種寫法的區別:
controller 有兩種寫法,討論一下兩種寫法的區別: 寫法 1: app.controller('myCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); }); 寫法2: app.controller('
再次探究SSH框架下struts兩種配置的區別
眾所周知,在ssh框架下,struts有兩種配置方式。一種是直接自己進行配置,另外一種是把事務交給Spring。一般來說,SSH的框架推薦使用後者方式進行配置,從而方便進行aop管理等操作。 那麼,這兩種方式究竟有何區別?本文試從兩個方面對此進行討論:一是兩者在配置上的差異,二是兩者在執行原
h264兩種封裝格式區別
annexb 一個Access Units(AU)包含一個幀,一幀畫面包含一個或多個NALU(Network Abstraction Layer Units) 為了位元組對齊,每個NALU有起始碼,其中4位元組的起始碼0x00000001通常標誌流的隨機訪問點SPS, PP
SparkSteaming中直連與receiver兩種方式的區別
SparkStreaming的Receiver方式和直連方式有什麼區別? Receiver接收固定時間間隔的資料(放在記憶體中的),使用高階API,自動維護偏移量,達到固定的時間才去進行處理,效率低並且容易丟失資料,靈活性特別差,不好,而且它處理資料的時候,如果某一刻的資料量過大,那麼就會造成磁碟溢寫的情況