Java多线程同步在言语使用中十分的主要,咱们在不时的学习中就会留意到这一点。下面咱们就细致的看看如何才干更好的执行Java多线程同步的使用。下面的代码会对你有所协助。
一个很主要的主要字就是线程同步synchronized,下面的火车票的售票系统的模型:同步分为同步块和同步方法:
1.class SellThread implements Runnable
2.{
3.int tickets=100;
4.Object obj=new Object();
5.boolean b=false;
6.public void run()
7.{
8.if(b==false)
9.{
10.while(true)
11.sell();
12.}
13.else
14.{
15.while(true)
16.{
17.synchronized(obj)
18.{
19.try
20.{
21.Thread.sleep(10);
22.}
23.catch(Exception e)
24.{
25.e.printStackTrace();
26.}
27.synchronized(this)
28.{
29.if(tickets>0)
30.{
31.System.out.println
32.("obj:"+Thread.currentThread().getName()+
33."
34.sell tickets:"+tickets);
35.tickets--;
36.}
37.}
38.}
39.}
40.}
41.}
42.public synchronized void sell()
43.{
44.synchronized(obj)
45.{
46.if(tickets>0)
47.{
48.try
49.{
50.Thread.sleep(10);
51.}
52.catch(Exception e)
53.{
54.e.printStackTrace();
55.}
56.System.out.println("sell():"+Thread.currentThread
57.().getName()+