五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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中線程同步塊的代碼的評論 (共 條)

分享到微博請遵守國家法律
平顶山市| 罗甸县| 杨浦区| 康定县| 大姚县| 绥江县| 南部县| 夏津县| 勃利县| 长丰县| 新郑市| 齐齐哈尔市| 曲靖市| 莱州市| 鹤壁市| 枞阳县| 梁山县| 宁波市| 江源县| 武宁县| 荥阳市| 正安县| 高州市| 克什克腾旗| 小金县| 镇赉县| 定南县| 敦化市| 宝清县| 曲周县| 汕头市| 特克斯县| 洞口县| 西城区| 荆门市| 朝阳区| 赞皇县| 湟中县| 新绛县| 淮北市| 石嘴山市|