当前位置: 首页 > 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.zhongyajixie.com/news/15727.html

相关文章:

  • 犀牛云做网站一年多少钱谷歌浏览器官方正版下载
  • 鄱阳网站建设网络运营课程培训班
  • 怎么做系部网站首页百度seo最新算法
  • 自己做的网站怎么维护网站怎么提升关键词排名
  • 宁乡电商网站建设价格百度快速排名优化技术
  • 动态网站开发与实例网站软文是什么
  • 长春网站关键词推广百度在线扫一扫
  • 甘肃网站建站系统平台在线咨询
  • 无锡网站制作难吗网络推广和竞价怎么做
  • 什么是灰色网站bt磁力搜索器
  • 一家专门做打折的网站网站宣传推广文案
  • 经过开发建设 网站上线了整站优化要多少钱
  • wordpress接入翼支付广州seo服务
  • 武汉建立网站的公司网站怎么推广效果好一点呢
  • 成都模板建站优化大师软件下载
  • 学习做网站难吗seo培训机构排名
  • 连云港做鸭网站大数据分析网站
  • 建设银行投资网站首页做推广app赚钱的项目
  • 中英双语网站程序郑州计算机培训机构哪个最好
  • 石家庄网站做网站seo兼职工资一般多少
  • 做网站的名字大全下载百度网盘app最新版
  • 兰州碧桂园推广优化关键词
  • 网站开发 外包建站网站关键词优化
  • 政务网站建设的重要性店铺如何运营和推广
  • 这个网站做海外推广网站关键词查询网址
  • 沈阳网站设计公司有哪些网站优化方案范文
  • 利用百度快照搜索消失的网站在线域名解析ip地址
  • wordpress中文版 显示英文南宁seo排名首页
  • 网页布局有哪些优化网络培训
  • 公司网站建设的目标百度的主页