无码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中線程同步塊的代碼的評論 (共 條)

分享到微博請遵守國家法律
庆元县| 富蕴县| 年辖:市辖区| 旌德县| 万载县| 色达县| 金门县| 壤塘县| 绿春县| 连州市| 临澧县| 湖北省| 招远市| 巧家县| 临武县| 高唐县| 松原市| 彭泽县| 镶黄旗| 青海省| 永福县| 永泰县| 沐川县| 英德市| 吴忠市| 正安县| 遂川县| 涿州市| 犍为县| 昌图县| 延长县| 济南市| 盐池县| 台湾省| 福安市| 米泉市| 肥城市| 体育| 乳山市| 渭南市| 隆尧县|