日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java class線程源代碼學(xué)習(xí)全過程

Java class線程需要我們不斷的學(xué)習(xí),在長期的使用中會(huì)出現(xiàn)很多的問題,下面我們就從Java class線程的源代碼中看看如何才能更好的解決相關(guān)問題,希望大家有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到廈門網(wǎng)站設(shè)計(jì)與廈門網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋廈門地區(qū)。

 
 
 
  1. class Test {  
  2. public static void main(String[] args) {  
  3. //定義Object對(duì)象o  
  4. Object o = new Object();  
  5. //定義Runclass對(duì)象r  
  6. Runclass r = new Runclass();  
  7. //注意這里,沒有將對(duì)象o和對(duì)象r的引用傳遞給兩個(gè)線程  
  8. Thread1 t1 = new Thread1();  
  9. Thread2 t2 = new Thread2();  
  10. t1.start();  
  11. t2.start();  
  12. }  

問題:兩個(gè)線程類的成員變量沒有賦值方法,也沒有初始化,所以其引用為空,在調(diào)用時(shí)會(huì)拋出NullPointerException

解決:兩個(gè)線程類的構(gòu)造方法修改一下

 
 
 
  1. Thread1(Runclass r, Object o) {  
  2. this.r = r;  
  3. this.o = o;  
  4. }  
  5. Thread2(Runclass r, Object o) {  
  6. this.r = r;  
  7. this.o = o;  
  8. }  
  9. 調(diào)用方法變成:  
  10. public static void main(String[] args) {  
  11. Object o = new Object();  
  12. Runclass r = new Runclass();  
  13. Thread1 t1 = new Thread1(r, o);  
  14. Thread2 t2 = new Thread2(r, o);  
  15. t1.start();  
  16. t2.start();  

這樣就解決了NullPointerException不過程序其他地方還有問題,程序會(huì)拋IllegalMonitorStateException這涉及到線程同步,樓主對(duì)wait的理解還不夠,可以看看相關(guān)資料。在這個(gè)程序中,需要將同步的地方改成o.wait();和o.notify();因?yàn)殒i定的對(duì)象是Object o。

【編輯推薦】

  1. Java多線程如何解決關(guān)鍵字封鎖問題
  2. Java多線程中wait語句的具體使用方法
  3. Java多線程如何創(chuàng)建多個(gè)線程
  4. Java多線程優(yōu)化之偏向鎖原理分析
  5. Java多線程初學(xué)者指南系列教程

本文標(biāo)題:Java class線程源代碼學(xué)習(xí)全過程
本文來源:http://www.5511xx.com/article/dhisgpp.html