如何让百度口碑收录自己的网站网站翻页动画效果

张小明 2025/12/31 18:52:13
如何让百度口碑收录自己的网站,网站翻页动画效果,站长之家权重查询,西安建设和住房保障局网站首页目录 1.场景 2.编写程序 3.解决办法#xff1a;线程同步 1)synchronized同步代码块 2)synchronized同步方法 3)两个方式的对比 4)写一个锁对象 4.使用场景 使用Lock的场景 使用synchronized的场景 1.场景 小明和小红是一对夫妻#xff0c;他们有一个共同的账户线程同步1)synchronized同步代码块2)synchronized同步方法3)两个方式的对比4)写一个锁对象4.使用场景使用Lock的场景使用synchronized的场景1.场景小明和小红是一对夫妻他们有一个共同的账户有余额十万块钱有一天他们各自同时取了十万块钱。那谁能成功取到这十万呢2.编写程序1)创建账户类创建账户对象来代表夫妻的共同账户提供取钱方法package ThreadSecurity; public class Account { private Integer money; public Account() {} public Account(Integer money) { this.money money; } public Integer getMoney() { return money; } public void setMoney(Integer money) { this.money money; } //取钱方法 public void drawMoney(Integer money) { //看看是谁来取钱 String name Thread.currentThread().getName(); //验证余额 if (this.money money) { //先打印一次以免程序执行过快反而不出现安全问题 System.out.println(name取钱成功取出了money元); this.money - money ; System.out.println(name 取钱成功,余额 this.money 元); } else { System.out.println(余额不足); } } }2)使用线程类运行两个线程来模拟取钱过程package ThreadSecurity; public class MyThread implements Runnable{ private Account account; public MyThread(Account account) { this.account account; } Override public void run() { account.drawMoney(100000); } }3)测试package ThreadSecurity; /** * 模拟线程同步问题 * 小明和小红同时取同一个账户的钱 */ public class Test { public static void main(String[] args) { //创建账户类 Account account new Account(100000); //创建小明线程 Thread xmnew Thread(new MyThread(account)); xm.setName(小明); xm.start(); //创建小红线程 Thread xhnew Thread(new MyThread(account)); xh.setName(小红); xh.start(); } }结果(也有可能是小红取钱成功)可见如果两个人都取钱成功那么银行就会亏损十万元。那么该怎么解决呢3.解决办法线程同步1)synchronized同步代码块作用把访问共享资源的核心代码块上锁以此保证线程安全在核心逻辑取钱方法当中修改package ThreadSynchronized01; public class Account { private Integer money; public Account() {} public Account(Integer money) { this.money money; } public Integer getMoney() { return money; } public void setMoney(Integer money) { this.money money; } //取钱方法 public void drawMoney(Integer money) { //看看是谁来取钱 String name Thread.currentThread().getName(); //synchronized代码块给代码块上锁 //线程通过竞争锁拿到锁对象(this)之后可以执行代码块执行完之后释放 synchronized (this) { //验证余额 if (this.money money) { //先打印一次以免程序执行过快反而不出现安全问题 System.out.println(name取钱成功取出了money元); this.money - money ; System.out.println(name 取钱成功,余额 this.money 元); } else { System.out.println(name取钱失败,余额不足); } } } }语法synchronized(锁对象){//业务逻辑......}锁对象可以是其他对象但是不建议因为如果是某一常量的话可能会影响其他无关线程的运行。用this合适因为这样不会影响其他无关线程的执行也能起到锁的作用。对于实例方法建议使用this作为锁对象对于静态方法建议使用字节码(类名.class)作为锁对象执行结果结果不唯一2)synchronized同步方法作用把访问共享资源的核心方法上锁以此保证线程安全修改取钱方法package ThreadSynchronized02; public class Account { private Integer money; public Account() {} public Account(Integer money) { this.money money; } public Integer getMoney() { return money; } public void setMoney(Integer money) { this.money money; } //取钱方法 //synchronized同步方法和synchronized代码块大致相同 //synchronized方法的性能比synchronized代码块低因为synchronized代码块可以让其他线程先处理没有线程安全的代码 //synchronized同步方法维护了一个隐式锁 public synchronized void drawMoney(Integer money) { //看看是谁来取钱 String name Thread.currentThread().getName(); //验证余额 if (this.money money) { //先打印一次以免程序执行过快反而不出现安全问题 System.out.println(name取钱成功取出了money元); this.money - money ; System.out.println(name 取钱成功,余额 this.money 元); } else { System.out.println(name取钱失败,余额不足); } } }结果(结果不唯一)3)两个方式的对比4)写一个锁对象Lock是Java并发包java.util.concurrent.locks中提供的显式锁机制相比synchronized内置锁它提供了更灵活、功能更丰富的锁控制以ReentrantLock可重入锁为例package ThreadLock; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Account { //锁对象,加上final防止锁被修改 private final Lock lock new ReentrantLock(); private Integer money; public Account() {} public Account(Integer money) { this.money money; } public Integer getMoney() { return money; } public void setMoney(Integer money) { this.money money; } //取钱方法 public void drawMoney(Integer money) { //看看是谁来取钱 String name Thread.currentThread().getName(); //ctrlaltt选中代码块 try { //上锁 lock.lock(); //验证余额 if (this.money money) { //先打印一次以免程序执行过快反而不出现安全问题 System.out.println(name取钱成功取出了money元); this.money - money ; System.out.println(name 取钱成功,余额 this.money 元); } else { System.out.println(余额不足); } } catch (Exception e) { throw new RuntimeException(e); }finally { //unlock必须执行如果前面发生异常也要解锁所以要在finally里面 lock.unlock(); } } }结果(不唯一):4.使用场景使用Lock的场景需要高级功能可中断、超时、尝试锁需要多个条件变量复杂的线程协调读写分离场景读多写少需要公平性控制按顺序获取锁性能关键场景高竞争下的性能优化使用synchronized的场景简单同步需求基本的互斥访问代码简洁性减少代码复杂度自动管理避免忘记释放锁内建优化JVM对synchronized有深度优化
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做暧电影在线观看网站怎么给自己做一个网页

3个简单步骤:快速实现跨平台自动化工具配置 【免费下载链接】skyvern 项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern 企业级自动化工具常面临浏览器兼容性难题,不同内核的渲染差异、API支持度差异,可能导致自动化流程在…

张小明 2025/12/30 20:44:23 网站建设

网站在线开放端口0317网站建设

简介 《动手构建大模型》是面向零基础读者的实战指南,通过三大篇章系统介绍大模型应用开发:基础理论篇讲解LLM核心架构与原理;核心技术篇详解提示词工程、RAG、框架工具使用;高阶应用篇深入智能体构建、模型微调与部署优化。本书采…

张小明 2025/12/30 12:18:57 网站建设

陕西专业做网站市建设工程信息网

Linux 命令行工具与系统操作全解析 1. 虚拟化命令行工具基础操作 在虚拟化环境中,有许多实用的命令行工具可用于管理虚拟机和磁盘镜像。以下是一些常见操作示例: - 列出已注册的虚拟机 :使用 vmware-cmd -l 命令可以列出所有已注册的虚拟机。 - 注册系统到管理程序…

张小明 2025/12/30 18:53:52 网站建设

python3 网站开发省住房城乡建设厅门户网站

网络技术综合指南:从基础到应用 1. 特殊字符与数字 特殊字符在网络命令和配置中具有重要作用。例如,“!”在 FTP 命令中有转义功能,“#”用于命令 shell 注释,“$”也是命令 shell 中的重要符号。数字方面,不同的标准和协议有特定的编号,如 802.2、802.3 等 IEEE 标准,…

张小明 2025/12/30 16:43:18 网站建设

用dw做的网站怎么放到网上上海网站制作科技公司

人工智能AI安全与对齐案例分析 AI安全与对齐的核心在于确保AI系统的行为符合设计者的意图,避免意外或有害后果。以下是几个典型案例分析: 案例1:OpenAI的GPT-3内容过滤 OpenAI在GPT-3中部署了内容过滤机制,通过规则和机器学习模…

张小明 2025/12/30 11:54:04 网站建设

广州网站建设兼职关于继续做好网站建设得通知

可缩放矢量图形(SVG)与VML、SMIL技术解析 1. 可缩放矢量图形(SVG)概述 1998年,除了VML,W3C还收到了另外三项与矢量图形相关的提案: - 精密图形标记语言(1998年3月)。 - 万维网网络示意图,由研究理事会中央实验室理事会代表于1998年3月提交的提案(W3C也给予了注释…

张小明 2025/12/30 20:43:30 网站建设