当前位置: 首页 > 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/22953.html

相关文章:

  • 杭州滨江网站建设公司网站模板库官网
  • app制作工具手机版seo资源网站排名
  • 建设网站需要客户提供什么资料换友情链接的网站
  • 网页制作框架模板的步骤巩义关键词优化推广
  • 动态网站开发实例自己怎么做网站网页
  • 买了个网站后怎么做的网站建设方案外包
  • 电子商务网站建设的步骤一般为搭建网站流程
  • 保定网站建设方案厦门谷歌seo公司有哪些
  • 网站建设一对一培训班全国疫情最新消息今天新增
  • 新疆网站开发报价seo同行网站
  • 怎么做网页自我介绍广州seo教程
  • wordpress 3.1seo案例分析100例
  • 个人网站主题百度公司有哪些部门
  • 邢台市住房和城乡建设局网站sem与seo的区别
  • 网站怎么做动态切图新东方在线网上课程
  • 全国疫情最新资讯关键词优化哪家强
  • 拿word如何做网站网站建设的数字化和互联网化
  • 李连杰做的功夫网站semi
  • 加强政府网站建设长春网站建设方案推广
  • 什么作为国内的主要门户网站成都网络推广哪家好
  • 做网站百度新闻源网络推广怎么做
  • 蛋糕网站设计郑州网站公司哪家好
  • 用自己照片做衣服_杯子的是哪个网站武汉百度网站优化公司
  • 武汉建筑公司网站厦门人才网最新招聘信息
  • 莱西网站建设哪家好网站设计
  • 建站平台费用搜索引擎优化的办法有哪些
  • 淘宝上做网站可信吗上海全国关键词排名优化
  • wordpress日主题下载深圳关键词推广整站优化
  • 外贸独立站有哪些平台如何设计一个网页
  • 网站logo如何做清晰seo云优化