2、使用方法同步

package com.lfy.ThreadsSynchronize;/*** 1、使用同步方法* 语法:即用  synchronized  关键字修饰方法(注意是在1个对象中用锁还是多个对象之间用锁,1个对象级用锁,只能是同一个对象,多个对象之间用锁,只能使用类锁,方法还需要添加static修饰)注意:不能直接用 synchronized 来修饰 run() 方法,因为如果这样做,那么就会总是第一个线程进入其中,而这个线程执行完所有操作,即卖完所有票了才会出来。
*/
public class TicketSellSolution2 extends Thread{private static int num = 50;public TicketSellSolution2(String string) {super(string);}@Overridepublic void run() {for(int i = 0 ; i < 50 ;i ++){sell();}}

/**
       * 类锁,在对象之间同样生效
       */

private synchronized static void sell() {if(num > 0){try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"卖出一张票,剩余"+(--num)+"张");}}
}

转载于:https://www.cnblogs.com/ZeroMZ/p/9292412.html

编程开发之--java多线程学习总结(3)类锁相关推荐

  1. 编程开发之--java多线程学习总结(5)

    4.对继承自Runnable的线程进行锁机制的使用 package com.lfy.ThreadsSynchronize;import java.util.concurrent.locks.Lock; ...

  2. 编程开发之--java多线程学习总结(2)同步代码块

    1.第一种解决办法:同步代码块,关键字synchronized package com.lfy.ThreadsSynchronize;/*** 1.使用同步代码块* 语法:synchronized ( ...

  3. 一个编程小白的Java SE学习日志 V——类、对象【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)3.18~3.25编写 观看前自问 面向对象实现过程 面向对象三大特性 封装 继承 多态 如何理解类与对象(实例)的关系? 现实理解 如何理解对象? 现实理解 任务导 ...

  4. 【转】Java 多线程学习

    原网址:https://www.cnblogs.com/yjd_hycf_space/p/7526608.html Java多线程学习(总结很详细!!!) 此文只能说是java多线程的一个入门,其实J ...

  5. 转:Java多线程学习(总结很详细!!!)

    Java多线程学习(总结很详细!!!) 此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢? 本文主要讲java中多线程 ...

  6. Java多线程学习之路(四)---死锁(DeadLock)

    Java多线程学习之路(四)-死锁(DeadLock) 1.定义 死锁就是多个线程在竞争共享资源的时候,相互阻塞,不能脱身的状态(个人理解).其实死锁一定程度上可以看成一个死循环. 举个现实生活中的例 ...

  7. 基于Java多线程的打怪升级类游戏设计与开发

    摘要:本文论述了通过JAVA多线程.基于JAVA Swing的GUI图形用户界面设计.IO输入输出流.JDBC技术,实现了游戏系统的UI设计.游戏数据的存储.关卡的设置.用户头像的上传与更改.游戏数据 ...

  8. Java多线程学习 (超详细总结)

    Java多线程学习 一.概要 二. JAVA 线程实现/创建方式 2.1 继承Thread 类 2.2 实现 Runnable 接口 2.3 Thread和Runnable的区别 2.4 总结 三.线 ...

  9. java多线程学习-java.util.concurrent详解

    http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...

最新文章

  1. java ecdh算法_椭圆曲线ECC ECDH原理 javacard实现
  2. 修改Eclipse自动换行长度
  3. sql连接远程服务器索引超出了_手机怎么连接服务器远程桌面?RD client远程桌面使用教程...
  4. typescript mongodb 教程搜集
  5. gin+vue的前后端分离开源项目
  6. IOS应用程序发布到苹果APP STORE完整流程使用教程
  7. 【计算机网络】——初识计算机网络
  8. java gzip 文件夹_Java GZip 基于磁盘实现压缩和解压的方法
  9. zookeeper使用问题汇总
  10. Android Navigation 详解
  11. 工作报告模板下载_免费工作报告图片设计素材_第2页_包图网
  12. w10查看端口_win10系统查看端口是否打开的操作方法
  13. 讲讲那些 H-桥电路 的基本道理
  14. vss服务器手动备份项目,VSS数据自动备份
  15. 网页游戏未来发展的一些趋势
  16. 阿里云掠地CDN:网宿称我们不在一条路上
  17. Opencv C++图像处理(全)
  18. 超声波测距 c语言程序流程图,超声波测距程序(详细C语言数码管显示)
  19. Lect2 Java 中的 Interface
  20. 假如再有三年生命,世界的教育改革家--乔布斯

热门文章

  1. 使用指针星号转移c语言,C中的指针:何时使用号和星号?
  2. python socket 大文件_python:socket传输大文件示例
  3. 论文阅读 - Beat Tracking by Dynamic Programming
  4. LeetCode 1105. 填充书架(DP)
  5. LeetCode 1665. 完成所有任务的最少初始能量(贪心)
  6. LeetCode 248. 中心对称数 III(DFS/BFS)
  7. LeetCode 419. 甲板上的战舰
  8. el表达式 循环_EL表达式和JSTL标签库(百战程序员047天)
  9. Flink的状态一致性
  10. Matplotlib - 饼图、环形图 pie() 多重饼图 subplots() 所有用法详解