午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

jvm - Java new 對(duì)象是否是原子性的?

瀏覽:134日期:2023-10-26 16:18:59

問題描述

public static void main(Sting args[]){ Object a=null; new Thread(){ a=new xxx() }.start(); new Thread(){ a=new xxx() }.start();}

想問,xxx()方法里有復(fù)雜的對(duì)象初始化邏輯,new關(guān)鍵字創(chuàng)建對(duì)象,是原子性的嗎?如果不是,會(huì)不會(huì)就出現(xiàn)了對(duì)象初始化錯(cuò)亂的問題?

問題解答

回答1:

沒明白你的意思,如果我猜得不錯(cuò)的話:

這完全取決于你的構(gòu)造方法里面的具體的邏輯,畢竟代碼是人寫的。

public class Test { static class A{public A(){ try {SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd:hh:mm:ss:SS');System.out.println(sdf.format(new Date()) + '--begin --從線程' + Thread.currentThread().getName() + '中創(chuàng)建A');Thread.sleep(2000);System.out.println(sdf.format(new Date()) + '--end--從線程' + Thread.currentThread().getName() + '中創(chuàng)建A'); } catch (InterruptedException e) {e.printStackTrace(); }} }public static void main(String[] args) {new Thread(new Runnable(){ @Override public void run() {System.out.println('A is ' +new A()); } }).start();new Thread(new Runnable(){ @Override public void run() {System.out.println('A is ' +new A()); } }).start(); }}

輸出:

2017-06-16:11:46:43:780--begin --從線程Thread-1中創(chuàng)建A2017-06-16:11:46:43:780--begin --從線程Thread-0中創(chuàng)建A2017-06-16:11:46:45:786--end--從線程Thread-0中創(chuàng)建A2017-06-16:11:46:45:786--end--從線程Thread-1中創(chuàng)建AA is nwe.Test$A@1e6a629cA is nwe.Test$A@27fcb25d

另一個(gè)例子,構(gòu)造器中包含同步塊,每一個(gè)線程都需要等待前面的線程執(zhí)行完成后才能執(zhí)行。

import java.text.*;import java.util.Date;public class Test { static class A{public A(){ try {synchronized (Test.class) { SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd:hh:mm:ss:SS'); System.out.println(sdf.format(new Date()) + '--begin --從線程' + Thread.currentThread().getName() + '中創(chuàng)建A'); Thread.sleep(2000); System.out.println(sdf.format(new Date()) + '--end--從線程' + Thread.currentThread().getName() + '中創(chuàng)建A');} } catch (InterruptedException e) {e.printStackTrace(); }} }public static void main(String[] args) {new Thread(new Runnable(){ @Override public void run() {System.out.println('A is ' +new A()); } }).start();new Thread(new Runnable(){ @Override public void run() {System.out.println('A is ' +new A()); } }).start(); }}

輸出:

2017-06-16:11:49:33:548--begin --從線程Thread-0中創(chuàng)建A2017-06-16:11:49:35:549--end--從線程Thread-0中創(chuàng)建AA is nwe.Test$A@717c3e102017-06-16:11:49:35:550--begin --從線程Thread-1中創(chuàng)建A2017-06-16:11:49:37:553--end--從線程Thread-1中創(chuàng)建AA is nwe.Test$A@27280786回答2:

建議參考線程安全的單例模式

回答3:

不具有,比如構(gòu)造方法中寫了多條邏輯,在執(zhí)行構(gòu)造方法時(shí),是可以中斷的。

回答4:

“原子性”這種描述太抽象,樓主提問的時(shí)候最好不要認(rèn)為所有人對(duì)某個(gè)詞的認(rèn)識(shí)都完全一樣。我只能說(shuō)構(gòu)造方法是線程安全的,對(duì)于每一個(gè)對(duì)象,構(gòu)造方法只會(huì)被執(zhí)行一次,只會(huì)被一個(gè)線程執(zhí)行。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 三级视频在线播放 | 国产免费自拍 | 99视频+国产日韩欧美 | 午夜在线看 | 中文字幕第12页 | 四虎在线免费播放 | jizz精品| 久久国产精品久久 | 毛片在哪里看 | 亚洲国产精品久久久久久 | 久久影视| 国产日韩欧美视频在线观看 | 日韩在线视频播放 | 欧美在线视频免费观看 | 欧美日韩国产在线 | av美女网站 | 日本黄在线观看 | 麻豆亚洲一区 | 女性裸体瑜伽无遮挡 | 开心春色激情网 | 亚洲欧美福利 | 久久麻豆精品 | 亚洲色图视频在线观看 | 日本高清有码 | 国产婷婷色一区二区三区 | 在线观看国产日韩 | 放几个免费的毛片出来看 | 四虎少妇做爰免费视频网站四 | 偷拍超碰 | 成人免费毛片观看 | 亚洲婷婷在线观看 | 久久夜视频| 国产一区欧美 | 少妇伊人| 国产精品久久久久久av | 91香蕉国产在线观看软件 | 综合网在线 | 国产又粗又猛又黄又爽 | 久久久亚洲天堂 | 欧美日韩aaa | 欧美日韩视频 |