无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java中線程同步塊的代碼

2020-04-13 17:24 作者:小垃圾kiki  | 我要投稿
package cn.jd.syn;
/*
?* 取錢線程安全
?*/
public class SynBlockTest01 {
?? ?public static void main(String[] args) {
?? ??? ?//賬戶
?? ??? ?Account account=new Account(1000,"結(jié)婚禮金");
?? ??? ?SynDrawing you=new SynDrawing(account,80,"可悲的你");
?? ??? ?SynDrawing wife=new SynDrawing(account,90,"happy的她");
?? ??? ?you.start();
?? ??? ?wife.start();
?? ??? ?
?? ?}
}

//模擬取款
class SynDrawing extends Thread{
?? ?Account account;//取錢的賬戶
?? ?int drawingMoney;//取的錢數(shù)
?? ?int packetTotal;//口袋的錢
?? ?
?? ?public SynDrawing(Account account, int drawingMoney,String name) {
?? ??? ?super(name);
?? ??? ?this.account = account;
?? ??? ?this.drawingMoney = drawingMoney;
?? ?}

?? ?@Override
?? ?public void run() {
?? ??? ?test();
?? ?}
?? ?//目標(biāo)鎖定account
?? ?public? void test() {
?? ??? ?//提高性能
?? ??? ?if(account.money<=0) {
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?synchronized(account) {
?? ??? ??? ?if(account.money-drawingMoney<0) {
?? ??? ??? ??? ?return;
?? ??? ??? ?}
?? ??? ??? ?try {
?? ??? ??? ??? ?Thread.sleep(1000);
?? ??? ??? ?} catch (InterruptedException e) {
?? ??? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?account.money-=drawingMoney;
?? ??? ??? ?packetTotal+=drawingMoney;
?? ??? ??? ?System.out.println(this.getName()+"-->賬戶余額為:"+account.money);
?? ??? ??? ?System.out.println(this.getName()+"-->口袋的錢為:"+packetTotal);
?? ??? ?}
?? ??? ?
?? ?}
}

package cn.jd.syn;

import java.util.ArrayList;
import java.util.List;

/*
?* 取錢線程不安全
?* 操作容器
?*/
public class SynBlockTest02 {
?? ?public static void main(String[] args) throws InterruptedException {
?? ??? ?List<String> list=new ArrayList<String>();
?? ??? ?for(int i=0;i<10000;i++) {
?? ??? ??? ?new Thread(()->{
?? ??? ??? ??? ?//同步塊
?? ??? ??? ??? ?synchronized(list) {
?? ??? ??? ??? ??? ?list.add(Thread.currentThread().getName());
?? ??? ??? ??? ?}
?? ??? ??? ??? ?
?? ??? ??? ?}).start();
?? ??? ?}
?? ??? ?//讓主線程延時1秒,害怕線程沒有運行完成,主線程就執(zhí)行完畢了
?? ??? ?Thread.sleep(1000);
?? ??? ?System.out.println(list.size());? //發(fā)現(xiàn)有些數(shù)據(jù)丟掉了,顯然是被覆蓋了
?? ?}
}


java中線程同步塊的代碼的評論 (共 條)

分享到微博請遵守國家法律
洛扎县| 突泉县| 双江| 广宗县| 天气| 波密县| 常州市| 江都市| 锡林浩特市| 惠州市| 静安区| 印江| 清远市| 青州市| 呼和浩特市| 舞阳县| 万荣县| 织金县| 宁德市| 环江| 城固县| 漯河市| 荣昌县| 温州市| 长宁县| 邳州市| 旌德县| 山丹县| 浮梁县| 沙湾县| 上栗县| 砀山县| 资阳市| 辽中县| 屯留县| 宜黄县| 新龙县| 扎赉特旗| 安溪县| 岳池县| 麻城市|