java

位置:IT落伍者 >> java >> 浏览文章

Java多线程同步具体实例讲解


发布日期:2020年02月18日
 
Java多线程同步具体实例讲解

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所代表的对象的锁同步块利用的是同步块对象本身的锁

上一篇:Java多线程初学者指南(2):用Thread类创建线程

下一篇:漫谈Java加密技术系列文章 一至十