锘??xml version="1.0" encoding="utf-8" standalone="yes"?>秋霞电影一区二区,国产在线|日韩,久久亚洲在线http://www.aygfsteel.com/shma1664/articles/376914.html椹皯椹皯Sat, 28 Apr 2012 00:48:00 GMThttp://www.aygfsteel.com/shma1664/articles/376914.htmlhttp://www.aygfsteel.com/shma1664/comments/376914.htmlhttp://www.aygfsteel.com/shma1664/articles/376914.html#Feedback0http://www.aygfsteel.com/shma1664/comments/commentRss/376914.htmlhttp://www.aygfsteel.com/shma1664/services/trackbacks/376914.htmlint銆?span lang="EN-US">char銆?span lang="EN-US">double涓?span lang="EN-US">byte鐩鎬簰杞崲
//鏁存暟鍒板瓧鑺傛暟緇勭殑杞崲
public static byte[]
intToByte(int number) {
int
temp = number;
byte[]
b=new byte[4];
for
(int i=b.length-1;i>-1;i–){
b[i]
= new Integer(temp&0xff).byteValue(); //灝嗘渶楂樹綅淇濆瓨鍦ㄦ渶浣庝綅
temp
= temp >> 8; //鍚戝彸縐?span lang="EN-US">8浣?span lang="EN-US">
}
return b;
}
//瀛楄妭鏁扮粍鍒版暣鏁扮殑杞崲
public static int
byteToInt(byte[] b) {
int s
= 0;
for
(int i = 0; i < 3; i++) {
if (b[i] >= 0){
s
= s + b[i];
}else {
s
= s + 256 + b[i];
s = s * 256;
}
}
if
(b[3] >= 0) { //鏈鍚庝竴涓箣鎵浠ヤ笉涔橈紝鏄洜涓哄彲鑳戒細婧㈠嚭
s = s + b[3];
} else {
s
= s + 256 + b[3];
}
return
s;
}
//瀛楃鍒板瓧鑺傝漿鎹?/span>
public static byte[]
charToByte(char ch){
int
temp=(int)ch;
byte[]
b=new byte[2];
for (int i=b.length-1;i>-1;i–){
b[i]
= new Integer(temp&0xff).byteValue(); //灝嗘渶楂樹綅淇濆瓨鍦ㄦ渶浣庝綅
temp
= temp >> 8; //鍚戝彸縐?span lang="EN-US">8浣?span lang="EN-US">
}
return
b;
}
//瀛楄妭鍒板瓧絎﹁漿鎹?/span>
public static char
byteToChar(byte[] b){
int
s=0;
if(b[0]>0)
{
s+=b[0];
} else {
s+=256+b[0];
}
s*=256;
if(b[1]>0) {
s+=b[1];
} else {
s+=256+b[1];
}
char ch=(char)s;
return ch;
}
//嫻偣鍒板瓧鑺傝漿鎹?/span>
public static byte[]
doubleToByte(double d){
byte[] b=new byte[8];
long l=Double.doubleToLongBits(d);
for(int i=0;i<b.length;i++){
b[i]=new Long(l).byteValue();
l=l>>8;
}
return b;
}
//瀛楄妭鍒版誕鐐硅漿鎹?/span>
public static double
byteToDouble(byte[] b){
long l;
l=b[0];
l&=0xff;
l|=((long)b[1]<<8);
l&=0xffff;
l|=((long)b[2]<<16);
l&=0xffffff;
l|=((long)b[3]<<24);
l&=0xffffffffl;
l|=((long)b[4]<<32);
l&=0xffffffffffl;
l|=((long)b[5]<<40);
l&=0xffffffffffffl;
l|=((long)b[6]<<48);
l|=((long)b[7]<<56);
return Double.longBitsToDouble(l);
}

]]>- Book01-No.1 鍗曚緥澶氱嚎紼嬫墽琛屾ā寮?/title>http://www.aygfsteel.com/shma1664/articles/376912.html椹皯椹皯Sat, 28 Apr 2012 00:20:00 GMThttp://www.aygfsteel.com/shma1664/articles/376912.htmlhttp://www.aygfsteel.com/shma1664/comments/376912.htmlhttp://www.aygfsteel.com/shma1664/articles/376912.html#Feedback0http://www.aygfsteel.com/shma1664/comments/commentRss/376912.htmlhttp://www.aygfsteel.com/shma1664/services/trackbacks/376912.html1銆佸綰跨▼姝婚攣
a. 姝婚攣鍒嗘瀽錛?/span>
鍋囪A鍜孊鍚屾椂鍦ㄥ悆鎰忓ぇ鍒╅潰錛岃屽悆鎰忓ぇ鍒╅潰鐨勬潯浠舵槸宸︽墜浣跨敤姹ゅ嫼錛屽彸鎵嬩嬌鐢ㄥ弶瀛愩傜幇鍦ㄥ彧鏈変竴鍓鍏鳳紝A鎷垮埌浜嗘堡鍕猴紝B鎷垮埌浜嗗弶瀛愶紝A絳夊緟B鏀句笅鍙夊瓙錛孊絳夊緟A鏀句笅姹ゅ嫼銆傚垯褰㈡垚浜嗘閿併?/span>
b. 鍑虹幇姝婚攣鐨勬潯浠訛細
- 鍏鋒湁澶氫釜SharedResource鍙備笌鑰咃紝鐩稿綋浜庢堡鍕哄拰鍙夊瓙銆?/span>
- 綰跨▼閿佸畾浜嗕竴涓猄haredResource涔嬪悗錛屽湪鏈В閿佺殑鎯呭喌涓嬪幓閿佸畾鍙︿竴涓猄haredResource鍙備笌鑰咃紝鐩稿綋浜嶢鍦ㄦ嫢鏈変簡姹ゅ嫼涔嬪悗錛屽張鍘繪嬁鍙夊瓙錛汢鍦ㄦ嫢鏈変簡鍙夊瓙涔嬪悗鍙堝幓鎷挎堡鍕恒?/span>
- 鑾峰彇SharedResource鍙備笌鑰呯殑欏哄簭涓嶅浐瀹氾紝鍙備笌鑰呴『搴忓絳夛紝鐩稿綋浜庢堡鍕哄拰鍙夊瓙鐨勯『搴忕浉鍚岋紝娌℃湁鍏堝悗鍏崇郴銆?/span>
c. 涓婅堪1銆?銆?涓変釜鏉′歡鍙鐮村潖浜嗗叾涓竴縐嶏紝鍒欏氨瑙e喅浜嗘閿佺殑闂銆?/span>
2銆佹彁楂樺綰跨▼鎵ц鎬ц兘鐨勪袱縐嶆柟寮忥細
鍑忓皯 SharedResource鍙備笌鑰呭弬涓庤呯殑涓暟錛屼粠鑰屽噺灝憇ynchronized浣跨敤鏁伴噺錛屽噺灝戣幏鍙栧璞¢攣鐨勬搷浣滄椂闂?/span>
灝介噺緙╃煭涓寸晫鍖鴻寖鍥達紝浠庤屽噺灝戠嚎紼嬪啿紿佹椂絳夊緟鐨勬椂闂淬?/span>
3銆佽嚜宸辮璁$嚎紼嬮攣
oid method() {
lock();
//閿?/span>
try {
..
} finally {
unlock(); //鏈鍚庢棤璁轟粈涔堟儏鍐甸兘瑕佽В閿?/span>
}
}
4銆佸師瀛愭搷浣?/strong>
- 鐢╯ynchronized瀹氫箟鐨勬柟娉曟垨鑰呭潡閮藉叿鏈夊師瀛愭э紝鍙兘琚竴涓嚎紼嬩嬌鐢?/span>
- long銆乨ouble涓洪潪鍘熷瓙鎬э紝鍏朵粬綾誨瀷浠ュ強瀵硅薄絳夊紩鐢ㄩ兘鏄叿鏈夊師瀛愭?/span>
- 鍦ㄥ畾涔塴ong銆乨ouble綾誨瀷鍙橀噺鏃訛紝浣跨敤volatile淇グ錛岃〃紺哄榪欎釜瀛楁鍙橀噺鐨勫畾涔変負涓嶅彲鍒嗛殧鐨?/span>
鎬葷粨錛?/strong>
- 鍩烘湰綾誨瀷銆佸紩鐢ㄧ被鍨嬩負鍘熷瓙鎿嶄綔
- long銆乨ouble涓哄彲浠ュ垎鍓茬殑
- 鍦ㄥ綰跨▼涓嬌鐢ㄥ叾浣滀負鍏變韓鍙備笌鑰呬嬌鐢ㄦ椂錛岃涔堝湪浣跨敤鏃剁殑鏂規硶鐢╯ynchronized瀹氫箟錛屾垨鑰呬嬌鐢╲olatile澹版槑
5銆佹剰澶у埄闈㈡閿侀棶棰樿В鍐蟲柟妗?/strong>
璁捐鎬濊礬鏄皢姹ゅ嫼鍜屽弶瀛愪綔涓轟竴涓暣浣撳幓澶勭悊錛岃繖鏍峰氨瑙e喅浜嗘閿佺殑闂銆?br /> 榪樻湁涓縐嶆柟娉曞氨鏄湪娣誨姞姹ゅ嫼鍜屽弶瀛愭椂鏄湁搴忕殑錛屽繀欏誨厛鎷挎堡鍕猴紝鍐嶆嬁鍙夊瓙錛岃繖鏍蜂篃鍙互瑙e喅姝婚攣闂銆?/span>
//涓繪柟娉曪紝鐢ㄤ簬鍒涘緩澶勭悊
public class Main {
public static void main(String[] args) {
Tool spoon =
new Tool("spoon");
Tool fork =
new Tool("fork");
Tools tools =
new Tools(spoon, fork);
new EaterThread(tools, "shma").start();
new EaterThread(tools, "jjq").start();
}
}
1 // 鍚冩剰澶у埄闈㈢殑綰跨▼ 涓嶆柇鐨勫悆
2 class EaterThread extends Thread {
3 private String name;
4 private final Tool leftHand;
5 private final Tool rightHand;
6 public EaterThread(Tools tools, String name) {
7 super();
8 this.leftHand = tools.getSpoon();
9 this.name = name;
10 this.rightHand = tools.getFork();
11 }
12 public void eat() {
13 synchronized(leftHand) {
14 System.out.println(name + " takes up " + leftHand + "(left)");
15 synchronized(rightHand) {
16 System.out.println(name + " takes up " + rightHand + "(right)");
17 System.out.println(name + " is eating now!");
18 System.out.println(name + " puts down " + rightHand + "(right)");
19 }
20 System.out.println(name + " puts down " + leftHand + "(left)");
21 }
22 }
23
24 @Override
25 public void run() {
26 while(true) {
27 eat();
28 try {
29 Thread.sleep(1000);
30 } catch (InterruptedException e) {
31 // TODO Auto-generated catch block
32 e.printStackTrace();
33 }
34 }
35 }
36
37 }

]]>
主站蜘蛛池模板:
资兴市|
长沙县|
台南县|
谷城县|
双流县|
建湖县|
邛崃市|
河间市|
沂源县|
施甸县|
清河县|
东海县|
海兴县|
逊克县|
广宗县|
怀来县|
饶阳县|
沧源|
读书|
鄯善县|
郧西县|
望江县|
左云县|
镇巴县|
漳平市|
峨眉山市|
中江县|
神池县|
马鞍山市|
石泉县|
吉林省|
华容县|
新乐市|
浦东新区|
武定县|
尉犁县|
迁西县|
罗城|
土默特右旗|
阜新市|
乌审旗|