Java多线程同步在语言应用中十分的关键我们在不断的学习中就会注意到这一点下面我们就详细的看看如何才能更好的进行Java多线程同步的应用下面的代码会对你有所帮助
一个很重要的关键字就是线程同步synchronized下面的火车票的售票系统的模型同步分为同步块和同步方法
class SellThread implements Runnable
{
int tickets=;
Object obj=new Object();
boolean b=false;
public void run()
{
if(b==false)
{
while(true)
sell();
}
else
{
while(true)
{
synchronized(obj)
{
try
{
Threadsleep();
}
catch(Exception e)
{
eprintStackTrace();
}
synchronized(this)
{
if(tickets>)
{
Systemoutprintln
(obj:+ThreadcurrentThread()getName()+
sell tickets:+tickets);
tickets;
}
}
}
}
}
}
public synchronized void sell()
{
synchronized(obj)
{
if(tickets>)
{
try
{
Threadsleep();
}
catch(Exception e)
{
eprintStackTrace();
}
Systemoutprintln(sell():+ThreadcurrentThread
()getName()+
sell tickets:+tickets);
tickets;
}
}
}
}
通过网上资料得知同步块和同步方法其实本质是一样的都是对对象枷锁Java多线程同步中每个对象都有一个监视器锁同步方法是利用this所代表的对象的锁同步块利用的是同步块对象本身的锁