zoukankan      html  css  js  c++  java
  • synchronized关键字的使用简单实例

     1 package edu.thread.test;
     2 
     3 public class ThreadTest2 implements Runnable {
     4     @Override
     5     public void run() {
     6         getTicket();
     7     }
     8 
     9     /**
    10      * 得到车票
    11      */
    12     private synchronized void getTicket() {
    13         while (true) {
    14             System.out.println(Thread.currentThread().getName());// 得到当前线程名称
    15             try {
    16                 Thread.currentThread().sleep(1000);// 睡眠
    17             } catch (InterruptedException e) {
    18                 // TODO Auto-generated catch block
    19                 e.printStackTrace();
    20             }
    21         }
    22     }
    23 
    24     public static void main(String[] args) {
    25         ThreadTest2 test = new ThreadTest2();
    26         // 新建线程启动购买车票
    27         new Thread(test).start();
    28         new Thread(test).start();
    29         new Thread(test).start();
    30         new Thread(test).start();
    31         while (true) {
    32             System.out.println("main....");
    33             try {
    34                 Thread.currentThread().sleep(1000);// 睡眠
    35             } catch (InterruptedException e) {
    36                 // TODO Auto-generated catch block
    37                 e.printStackTrace();
    38             }
    39 
    40         }
    41     }
    42 
    43 }
    44 /*
    45  * 解释: synchronized方法是保持类的实例同时只能调用一次,直到方法运行结束才允许下一次调用。 但是如果
    46  * synchronized方法存在睡眠或暂停,则将CPU给其他线程使用,但是期间还是持有该方法的锁, 任何调用该方法都将阻塞
    47  */

    运行结果:

    运行结果分析:

    synchronized方法是保持类的实例同时只能调用一次,直到方法运行结束才允许下一次调用。 

    但是如果synchronized方法存在睡眠或暂停,则将CPU给其他线程使用,但是期间还是持有该方法的锁, 任何调用该方法都将阻塞

  • 相关阅读:
    Java学习——HashMap
    git 常用命令
    java 正则表达式
    java 读写文件
    python Shapely 使用指南
    java 删除目录、 文件
    Java maven安装GDAL
    postgresql运维
    (转)媒体格式分析之flv -- 基于FFMPEG
    (转)rtmp协议简单解析以及用其发送h264的flv文件
  • 原文地址:https://www.cnblogs.com/afluy/p/3255248.html
Copyright © 2011-2022 走看看