自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java class線程源代碼學(xué)習(xí)全過程

開發(fā) 后端
Java class線程學(xué)習(xí)的過程中有很多的問題,其實在源代碼中就能找打這些問題的解決方案。下面我們就來詳細(xì)的學(xué)習(xí)下有關(guān)問題的解決方案。

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

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

 

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

解決:兩個線程類的構(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不過程序其他地方還有問題,程序會拋IllegalMonitorStateException這涉及到線程同步,樓主對wait的理解還不夠,可以看看相關(guān)資料。在這個程序中,需要將同步的地方改成o.wait();和o.notify();因為鎖定的對象是Object o。
 

【編輯推薦】

  1. Java多線程如何解決關(guān)鍵字封鎖問題
  2. Java多線程中wait語句的具體使用方法
  3. Java多線程如何創(chuàng)建多個線程
  4. Java多線程優(yōu)化之偏向鎖原理分析
  5. Java多線程初學(xué)者指南系列教程
責(zé)任編輯:張浩 來源: 博客園
相關(guān)推薦

2017-04-25 18:03:11

Caffe深度學(xué)習(xí)框架

2011-02-22 10:46:02

Samba配置

2012-11-06 10:19:18

Java自定義加載Java類

2011-08-30 18:01:20

2011-04-18 15:56:10

軟件測試

2009-12-08 17:56:16

WCF配置

2011-09-06 15:38:20

QT安裝

2011-01-21 17:51:52

2009-04-13 12:37:18

2009-06-10 16:55:42

cygwin netb安裝

2010-03-01 17:01:03

Python編程技巧

2010-03-10 13:24:45

Zend Debugg

2010-06-17 13:10:09

Linux Grub修

2010-11-19 10:11:49

Oracle物化視圖

2011-03-11 10:39:02

YUM安裝LAMP

2010-07-21 14:51:19

telnet-serv

2019-05-14 15:27:31

MongoDB自動備份數(shù)據(jù)庫

2010-06-12 10:03:20

Ubuntu Grub

2009-12-15 16:51:32

2010-02-23 11:35:38

Python 項目測試
點贊
收藏

51CTO技術(shù)棧公眾號