项目中如何使用多线程
- 在学习多线程阶段,我们都是在要实现多线程的类上实现多线程接口(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 + "张票");
}
}
}