当前位置: 首页 > news >正文

网站建设通查询东莞城建局电话是多少

网站建设通查询,东莞城建局电话是多少,智慧团建登录网站入口,凡科送审平台学生不能登录一、多线程编程模板 线程 操作 资源类 高内聚 低耦合 二、实现步骤 1、创建资源类 2、资源类里创建同步方法、同步代码块 三、12306卖票程序 3.1、synchronized实现 3.1.1、Ticket /*** Author : 一叶浮萍归大海* Date: 2023/11/20 8:54* …

一、多线程编程模板

线程        操作        资源类

高内聚                    低耦合

二、实现步骤

1、创建资源类
2、资源类里创建同步方法、同步代码块

三、12306卖票程序

3.1、synchronized实现

3.1.1、Ticket

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/20 8:54* @Description: 资源类火车票*/
public class Ticket {private Integer num = 30;public synchronized void saleTicket() {if (num > 0) {System.out.println(Thread.currentThread().getName() + " 卖出第:" + (num--) + "张票,还剩下:" + num + "张票!");}}}

3.1.2、SaleTicketSynchronizedMainApp

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/20 8:57* @Description: 需求:三个售票员  卖出  30张票(synchronized实现)* 多线程编程的企业级套路 + 模板:在高内聚低耦合的前提下,线程操作资源类*/
public class SaleTicketSynchronizedMainApp {public static void main(String[] args) {Ticket ticket = new Ticket();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "A").start();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "B").start();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "C").start();}}

3.1.3、结果

3.2、Lock实现

3.2.1、Ticket

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/20 8:57* @Description: 需求:三个售票员  卖出  30张票(synchronized实现)* 多线程编程的企业级套路 + 模板:在高内聚低耦合的前提下,线程操作资源类*/
public class SaleTicketSynchronizedMainApp {public static void main(String[] args) {Ticket ticket = new Ticket();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "A").start();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "B").start();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "C").start();}}

3.2.2、SaleTicketLockMainApp

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/20 8:57* @Description: 需求:三个售票员  卖出  30张票(Lock实现)* 多线程编程的企业级套路 + 模板:在高内聚低耦合的前提下,线程操作资源类*/
public class SaleTicketLockMainApp {public static void main(String[] args) {Ticket ticket = new Ticket();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "AA").start();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "BB").start();new Thread(() -> {for (int i = 1; i <= 40; i++) {ticket.saleTicket();}}, "CC").start();}}

3.2.3、结果

四、Lock

4.1、概述

4.2、Lock接口的实现类ReentrantLock

4.3、如何使用ReentrantLock

class X {private final ReentrantLock lock = new ReentrantLock();// ...public void m() {lock.lock();  // block until condition holdstry {// ... method body} finally {lock.unlock()}}}

4.4、synchronized VS Lock

(1)首先synchronized是java内置的关键字,在jvm层面,Lock是个java类;
(2)synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;
(3)synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()释放锁),否则容易造成线程死锁;
(4)用synchronized关键字的两个线程1和线程2,如果当前线程1获得锁,线程2等待。如果线程1阻塞,线程2则会一直等待下去,而Lock锁就不一定会等待下去,如果尝试获取不到锁,           线程可以不用一直等待就结束了;
(5)synchronized的锁可重入、不可中断、非公平,而Lock锁可重入、可中断、可公平(两者皆可);
(6)Lock锁适合大量同步的代码的同步问题,synchronized锁适合代码少量的同步问题;

http://www.yayakq.cn/news/251188/

相关文章:

  • 求个a站干煤棚网架公司
  • 马鞍山网站开发小程序app系统开发
  • 广州网站建设外包广州清洁公司
  • 永久免费自助建站系统移动应用开发是什么意思
  • 网站建设 主机托管深圳返利网站开发
  • 如何在税局网站上做税种认定做网站网站要找谁
  • 行业网站导航开封市城乡建设局网站
  • 湘潭网站建设优等磐石网络如何从零开始学做电商?
  • 做网站网页的成本wordpress get_pages()
  • 小超人成都网站建设网站被禁止访问怎么打开
  • 安徽网站优化厂家报价网络项目设计方案
  • 动漫网站设计论文关于做网站的搞笑段子
  • 专业网站建设管理关于淘宝店网站建设的可行性报告
  • 西部空间官方网站自己做的网页怎么上传到网站
  • 做盗版视频网站网站上传 空间 数据库
  • 做网站的困难wordpress login网址
  • 商城版网站制作网站开发经验总结
  • 网站网站怎么做的wordpress php执行慢
  • 自己做的工艺品在哪个网站上可以卖seo是什么意思中文
  • 建站都需要什么图片展示网站建设
  • 云主机 网站指南可视化建站源码
  • 义乌开锁做网站哪个好wordpress首页html代码
  • 旅游网站建设成本核算会做网站开发 但是不会二次开发
  • 网站的页面风格是什么外贸商城建站
  • 微网站和普通网站区别建设公司网站价格
  • 大连网站淘客做的网站属于什么类型
  • 高端企业网站建设好的公司网页无法访问百度
  • 用asp做的网站网页设计教程安利 杨松
  • 合肥做网站推广alexa的网站排名主要分为哪两种
  • 泉州台商区建设局网站公司网站兰州建设需要多少钱