编辑器:Notepad++;学习视频:毕向东Java基础教程
/*
卖票示例
*/
//第一步:实现Runnable接口
class Ticket implements Runnable //不使用继承,避免多个线程卖相同的票(可将num定义成静态的来解决)
{
private int num = 100; //卖100张票
//第二步:覆盖run方法
public void run()
{
while(true)
{
if(num>0)
System.out.println(Thread.currentThread().getName()+".....sale"+num--);
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
//第三步:实例化Runnable接口子类对象,并作为参数传递给Thread
Ticket t = new Ticket(); //只需要实例化一次ticket类,如果继承,需要几个线程,就得实例化几次,导致一张票卖多次的问题
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
//第四步:调用start()方法,开启线程
t1.start();
t2.start();
t3.start();
t4.start();
}
}
本文通过一个具体的卖票示例,详细解析了Java中如何利用多线程进行资源的同步操作。首先实现了Runnable接口,然后通过覆盖run方法来定义线程的行为。在主函数中创建了多个线程并共享同一个Ticket对象,以此来演示线程间的资源共享与同步问题。


被折叠的 条评论
为什么被折叠?



