1.幾個概念:
1.程序(Program):代碼的集合,靜態的
2.進程(Process):正在運行的程序,包含很多線程
3.線程(Thread):進程的最小單元
2.java支持多線程,新版本有三種方法:
1.繼承Thread
2.實現Runnable接口
3.線程(Thread):
1.說明:一個進程可以由多個線程組成,至少有一個主線程,主線程中可以啓動多個子線程,所有線程結束才終止,進程之間不能共享,一個進程的多個線程可以共享
2.實現步驟:
1.繼承Thread類(線程的父類)2.重寫run方法(又名線程體:啓動線程後需要執行的方法)3.創建類的對象,啓動線程(start)
3.常用方法:
getId():獲得唯一標識getName():獲得線程名setName():設置線程名setDameon():設置當前線程爲精靈線程(守護線程)join():加入線程(子線程結束後,再運行主線程)sleep():休眠(毫秒)start():啓動線程,對線程進行一系列初始化後,調用run方法yield():暫停正在執行的程序
4.線程的生命週期:(Life Cycle)
1.新生2.就緒3.運行4.阻塞5.消亡
4.Runnable接口:可運行的接口,是線程中可執行代碼的封裝,可以理解爲線程體
5.資源競爭:
1.在多個線程同時操作一個資源時,可能會產生資源競爭問題
2.可以通過同步鎖來解決
6.同步鎖:
1.說明:將訪問資源的代碼放在一個同步塊或同步方法中,當需要執行此代碼時,必須先得到鎖才能執行,得不到鎖則不能執行,只能將線程放在鎖池中等待其他線程釋放鎖
2.synchronized(同步)