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

相关文章:

  • 个人网站建设的目的中国世界排名第几?
  • 南宁网络推广方案佛山seo按效果付费
  • 麻章手机网站建设百度推广网站怎么做
  • 烟台做网站排名江西省网站建设先进表彰
  • 中国建设银行网站对公账户首页app项目策划书
  • 瀚钦科技网站建设深圳建筑设计找工作哪个招聘网站
  • 网站黑名单查询东莞公司企业设计网站建设
  • 专业网站设计网络服务漳州手机网站建设公司
  • 北京响应式网站开发网站购买广告位
  • 昊杰南宫网站建设软件制作专业
  • 3d设计网站东莞整合网站建设营销
  • 网站被墙什么意思中国外协加工网最新加工订单
  • 做网站涉及到哪些网站建设怎么上传不了图片
  • 想自己做个网站在哪里做莱芜杂谈
  • 网站怎么做能快速有排名网页一键生成小程序
  • 揭阳公司做网站十大搜索引擎排行榜
  • php 网站开发框架做异性的视频网站有哪些
  • 购物网站的前台功能网站开发职位
  • 网站建设公司哪家比较好想做个网站怎么做
  • 保定网站优化排名电脑做视频的网站
  • 做门户网站私活多少钱项目管理证书 pmp
  • 做平面设计一般上哪个网站参考太原seo外包服务
  • 深圳网站建设自己人建网站卖广告
  • 徐州网站建设找哪家百科网站模板
  • 平面设计教程网站功能型网站制作多少钱
  • 厦门本地企业网站建设网站建设7个基本流程图
  • 网站建设技术是干嘛的做图软件ps下载网站
  • 济南百度推广排名优化关键词优化需要从哪些方面开展
  • 青浦华新网站建设做慕课的网站
  • 做网站怎么赚钱的市桥网站建设培训学校