線程:
static int MAX_PRIORITY 線程可以具有的最高優先級。
static int MIN_PRIORITY 線程可以具有的最低優先級。
int NORM_PRIORITY 分配給線程的默認優先級。
線程不做嚴格的要求;
但是: 至少得知道 創建和啓動線程的兩種方式;並能區分出兩種的異同;
static Thread currentThread()
setName(String name)設置當前線程的名字
getName();獲得線程名字
setPriority(int i);設置優先級
int getPriority() 返回線程的優先級。
boolean isAlive() 測試線程是否處於活動狀態。
boolean isDaemon() 測試該線程是否爲守護線程。
void setDaemaon(true):表示設置後臺線程
sleep(休眠),join(搶),yield(禮讓),
啓動方法: start();
new Thread(Runnable r).start();
new Thread的子類().start();
同步:三種方法:
同步代碼塊:
synchronized(obj){
newObject()
//obj表示同一個監聽對象
//需要同步的代碼
}
同步方法:
synchronized 方法。。。。。。。。。。。。
{
}
可重入鎖:
ReentrantLock
class A{
private final ReentrantLock lock = new ReentrantLock();
public void show(){
lock.lock();//鎖了
try{
//可能出現不同步的代碼
}finally{
lock.unlock();//是否鎖
}
}
}
線程的通訊: 生產者與消費者關係
死鎖:開發中藥避免死鎖
筆試面試的時候,裝B的公司喜歡考;
線程的和進程的概念:面試前多背
還有一個筆試不多的,但是也是他們經常拿出來炫耀的:
生產者和消費者
同步:
Object裏的三個方法:
wait();//等待
notify();//喚醒一個線程。自己不能喚醒自己
notifyAll();//喚醒所有的線程