表現(xiàn)在:
  1.Java沒(méi)有全局變量;
  2.Java 的線(xiàn)程之間的通信比較差,C++提供了多種通信方式;
  3.Java的數(shù)據(jù)同步是通過(guò),江蘇會(huì)計(jì)證考試報(bào)名,2022年會(huì)計(jì)從業(yè)資格考試報(bào)名,2022年江蘇會(huì)計(jì)從業(yè)證報(bào)名,2022年江蘇會(huì)計(jì)從業(yè)考試報(bào)名,江蘇2022年會(huì)計(jì)從業(yè)資格考試成報(bào)名,2022年江蘇會(huì)計(jì)從業(yè)考試,會(huì)計(jì)電算化考試試題,2022年江蘇會(huì)計(jì)電算化,江蘇會(huì)計(jì)電算化試題,江蘇會(huì)計(jì)電算化考試,江蘇初級(jí)會(huì)計(jì)電算化,江蘇初級(jí)會(huì)計(jì)電算化考試">

射精一区欧美专区|国产精品66xx|亚洲视频一区导航|日韩欧美人妻精品中文|超碰婷婷xxnx|日韩无码综合激情|特级黄片一区二区|四虎日韩成人A√|久久精品内谢片|亚洲成a人无码电影

您現(xiàn)在的位置:首頁(yè) > IT認(rèn)證 > JAVA >

基礎(chǔ)入門(mén):Java多線(xiàn)程編程經(jīng)驗(yàn)談


  不管我是多么喜歡JAVA但是,從實(shí)際開(kāi)發(fā)角度講,Java的多線(xiàn)程確實(shí)沒(méi)有C++好使。
  表現(xiàn)在:
  1.Java沒(méi)有全局變量;
  2.Java 的線(xiàn)程之間的通信比較差,C++提供了多種通信方式;
  3.Java的數(shù)據(jù)同步是通過(guò)synchronized來(lái)實(shí)現(xiàn),但是基本上等于交給了虛擬機(jī)來(lái)完成,而C++有很多種:臨界區(qū)、互斥體等。
  4. Java的多線(xiàn)程run方法沒(méi)有返回值,因此如何能得到子線(xiàn)程的反饋信息,確實(shí)令人頭疼。
  5.Java的多線(xiàn)程是協(xié)作式,這樣等于操作系統(tǒng)放棄了對(duì)線(xiàn)程的控制;
  這里談?wù)勎以趈ava多線(xiàn)程中的編寫(xiě)經(jīng)驗(yàn):
  1.創(chuàng)建thread時(shí),將主控類(lèi)或者叫做調(diào)用類(lèi)傳入構(gòu)造函數(shù)中,例如:
  Class A調(diào)用Class B,Class A作為Class B構(gòu)造函數(shù)的參數(shù)。
  這樣再創(chuàng)建一個(gè)子線(xiàn)程時(shí),用同樣的方式實(shí)現(xiàn),這樣主控類(lèi)的實(shí)例變量就可以作為全局變量,當(dāng)然要注意同步。
  2. 類(lèi)同步中wait(),notify()一定要考慮好邏輯,不然有可能造成阻塞。
  3. 如果多個(gè)線(xiàn)程調(diào)用或者目前不是很清楚有多少個(gè)線(xiàn)程進(jìn)行通信,最好的辦法是自己實(shí)現(xiàn)一個(gè)listener,然后調(diào)用類(lèi)調(diào)用Listener的一個(gè)實(shí)例方法進(jìn)行通信。
  工作原理:
  1) Listener接口提供同步方法 例如SynData();
  2) 同步線(xiàn)程提供添加和刪除Listener的方法,同時(shí)在線(xiàn)程中對(duì)注冊(cè)Listener的類(lèi)進(jìn)行輪流通知;
  3) 使用給同步數(shù)據(jù)的線(xiàn)程類(lèi),繼承Listener接口,實(shí)現(xiàn)其方法,將本線(xiàn)程即將結(jié)束的數(shù)據(jù)發(fā)送到同步線(xiàn)程中;
  其實(shí)這個(gè)原理來(lái)自于Java Swing技術(shù)。

相關(guān)文章

無(wú)相關(guān)信息
更新時(shí)間2022-03-13 10:53:50【至頂部↑】
聯(lián)系我們 | 郵件: | 客服熱線(xiàn)電話(huà):4008816886(QQ同號(hào)) | 

付款方式留言簿投訴中心網(wǎng)站糾錯(cuò)二維碼手機(jī)版

客服電話(huà):4008816886