基礎:Java中的線程,Thread類與線程的建立java
- 線程是比進程更小的單位。 - JVM(Java虛擬機)中的線程調度器負責管理線程,在採用時間片的系統中,每一個線程都會有機會得到CPU的使用權。 - 線程建立後僅僅是佔有了內存資源,在JVM管理的線程中尚未這個線程,此線程必須調用`start()`方法通知JVM。
重點(難點):線程同步,協調同步的線程git
- 線程同步是指幾個線程都須要調用同一個同步方法。 - 一個線程在使用同步方法時,可能根據問題的須要,必須使用`wait()`方法暫時讓出CPU的使用權。 - 其餘線程在使用這個同步方法時若是不須要等待,那麼它用完這個同步方法的同時,應當執行`notifyAll()`方法通知全部因爲使用這個同步方法而處於等待的線程結束等待。
實用:計數器線程多線程
while
語句裏無限循環,那麼第2個while
語句中的代碼是永遠沒有機會執行的。若是能在主線程中建立兩個線程,那麼這兩個while
語句將會被輪流執行。run()
方法呢?run()
方法沒有具體內容,程序要在Thread類的子類中重寫run()
方法來覆蓋父類的run()
方法。主人1
,主線程爲何沒有將這個for循環語句執行完呢?學習
speakElephant.start(); speakCar.start();
此時,JVM已經知道有3個線程了。於是,在main線程使用CPU資源執行到for語句的第1次循環以後,JVM就將CPU資源切換給speakCar線程了。線程
speakCar.start();
去掉,或者改成設計
carTarget.run();
時,JVM認爲程序中只有兩個線程呢?3d
start()
方法時新建一個線程的方法,若去掉,則視爲沒有此線程;在carTarget.run();
運行過程當中可能被中斷,變成主線程的代碼了,JVM只在主線程與Elephant線程中切換。緣由:能夠調用RowSet中的方法update來填充其數據區,把update填成了populate。對於RowSet中的方法做用掌握得不清楚。調試
理解狀況:已瞭解該方法。code
緣由:對於executeUpdate不清楚。blog
理解狀況:已瞭解該方法。
緣由:對於數據操做語言瞭解不清楚。將select也選作了數據操做語言。
理解狀況:已掌握數據操做語言的基本內容。
本週學習內容中12章的內容,對於線程的理解更加深刻了。在學習前,對於線程、進程的概念十分混淆,如今也更加明晰了。在學習教材內容的過程當中,線程更接近電腦一些應用程序之類的運行,就不像前幾章十分直白的程序語句,只是針對於一個解決課本題目的程序,本章更利於解決實際的程序運行的問題,更加抽象也更加實用。