項目中如何使用多線程
- 在學習多線程階段,我們都是在要實現多線程的類上實現多線程接口(Thread,Runnable等),這樣代碼耦合性太高。
- 在項目中我們的資源類不需要實現多線程接口,只需要對應的屬性和方法即可。(這就叫OOP編程)然后在線程體里面去操作資源類中的方法即可。
示例:采用lambda反射編寫
public class ThreadExample02 {
public static void main(String[] args) {
Ticket ticket = new Ticket();
new Thread(()->{
for (int i = 0; i < 20; i++) {
ticket.sellTicket();
}
},"A電影院").start();
new Thread(()->{
for (int i = 0; i < 20; i++) {
ticket.sellTicket();
}
},"B電影院").start();
}
}
//資源類不需要在繼承多線程接口,降低耦合性。
class Ticket {
//票的總數量
int number = 20;
//賣票
public synchronized void sellTicket() {
if (number > 0) {
System.out.println(Thread.currentThread().getName() + "賣出了第" + (number--) + "張票,還剩余" + number + "張票");
}
}
}
