Java多线程之synchronized线程锁

Posted 星瑞的随笔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程之synchronized线程锁相关的知识,希望对你有一定的参考价值。

 

 1 package org.study2.javabase.ThreadsDemo.sync;
 2 
 3 /**
 4  * @Auther:GongXingRui
 5  * @Date:2018/9/18
 6  * @Description:synchronized线程锁
 7  **/
 8 public class TicketApp {
 9     public static void main(String args[]) {
10         Ticket ticket = new Ticket();
11         Thread t1 = new Thread(ticket, "小红");
12         Thread t2 = new Thread(ticket, "明明");
13         t1.start();
14         t2.start();
15     }
16 }
17 
18 class Ticket implements Runnable {
19     int num = 20;
20     private boolean flag = true;
21 
22     @Override
23     public void run() {
24         while (flag) {
25             test();
26         }
27     }
28 
29     public synchronized void test() {
30         if (num <= 0) {
31             flag = false;
32             return;
33         }
34         try {
35             Thread.sleep(100);
36         } catch (InterruptedException e) {
37             e.printStackTrace();
38         }
39         System.out.println(Thread.currentThread().getName() + "抢到票:" + num--);
40     }
41 }

 

以上是关于Java多线程之synchronized线程锁的主要内容,如果未能解决你的问题,请参考以下文章

java 多线程8 : synchronized锁机制 之 方法锁

多线程高并发之Synchronized锁及其膨胀

Java 多线程之内置锁与显示锁

Java 多线程之内置锁与显示锁

Java 多线程并发编程之 Synchronized 关键字

Java多线程之synchronized线程锁