多執行緒:執行形式、兩種實現方式及區別、同步及死鎖
實現執行緒的兩種方式:
繼承thread類:
class 類名稱 extends thread
同步方法 synchronized 方法返回值 方法名稱(引數列表) ----推薦使用
同步可以保證資源共享的正確性,但過多的同步可能出現死鎖,即程式執行不了了。
案例(生產者和消費者):
由生產者生產一台電腦後,消費者購買一台電腦,如果沒有新電腦生產出來,則等待生產,如果沒有賣出去電腦,則等待消費.
class democatch(interruptedexception e)
}this.setcomputer(computer); //設定生產
trycatch(interruptedexception e)
this.setcontact(contact);
flag = false; //讓flag為false表示可以消費了
super.notify(); //喚醒等待的執行緒
}public synchronized void get()catch(interruptedexception e)
}trycatch(interruptedexception e)
system.out.println(this.getcomputer()+"-->"+this.getcontact()); //輸出
flag = true; //讓flag為true,表示可以生產了
super.notify(); //喚醒
}public void setcomputer(string computer)
public void setcontact(string contact)
public string getcomputer()
public string getcontact() //setter和getter方法
}; class producer implements runnable
public void run()else
} //變換flag的值,來設定輸出值
}
};
class saler implements runnable
public void run()
} };
public class testdemocc
};
Java學者日記 多執行緒(二)
一 前情回顧 在多執行緒 一 中提到,多執行緒的使用是否一定是安全的呢?下面舉乙個例子來分析 該例子是乙個火車票售票系統,由三個視窗售票,用兩種建立多執行緒的方式來執行 繼承的方式 package thread2 模擬火車站售票視窗,開啟三個視窗售票,總票數為100張 class window ex...
學習日記之多執行緒
要學習執行緒,首先要理解三個概念。什麼是程式,什麼是程序,什麼是執行緒。程式,是指令的集合。程序是正在執行的程式,是靜態概念。執行緒,是程序中乙個 單一的連續控制流程 也稱為輕量級程序。執行緒有一下幾個點 1.乙個程序可以擁有多個執行緒 2.乙個程序中的執行緒個共享相同的記憶體單元,即擁有相同的變兩...
學習日記 java之執行緒
建立執行緒的兩種方法 1 繼承thread類 2 實現runnable介面 解決了單繼承的問題 獲取執行緒的名稱 1 原來執行緒是有預設的名稱的 thread 編號,編號從零開始 2 用getname 可以獲取執行緒名稱。static thread currentthread 獲取當前執行緒物件。直...