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

沈阳男科医院哪家医院好seo软件优化

沈阳男科医院哪家医院好,seo软件优化,手机端企业网站源码下载,辽宁建设工程信息网公司评分不能框多:框多了跟单线程没区别 不能框少: 1,框少了可能逻辑上有问题 2,框少了如果运行的快,可能会引发线程安全问题 以经典老题:三窗口卖票的extends方式为例,正常运行结果应该像这样 这是一…

不能框多:框多了跟单线程没区别

不能框少:

1,框少了可能逻辑上有问题

2,框少了如果运行的快,可能会引发线程安全问题

以经典老题:三窗口卖票的extends方式为例,正常运行结果应该像这样

这是一个框的少的情况,运行

class MyThread extends Thread{
private static int ticket = 100;
private static Object obj = new Object();
public MyThread(String name){super(name);
}public void run() {while (true) {
//            if(ticket<10) {
//                try {
//                    sleep(1000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }System.out.println(Thread.currentThread().getName() + "窗口准备卖票");if (ticket == 0) {System.out.println("已售罄");break;}synchronized (obj) {System.out.println(Thread.currentThread().getName()+"售票一张,余票:"+ --ticket);}}}
}public class SynchronizedTest{public static void main(String[] args) {MyThread m1 = new MyThread("窗口1");m1.start();MyThread m2 = new MyThread("窗口2");m2.start();MyThread m3 = new MyThread("窗口3");m3.start();}
}

 原因分析:

虽然是同一把锁,但是甲乙丙三个线程运行的速度很快,当ticket=1时,很大概率甲乙丙三者都通过了if的判断,在排队等待卖票,等三个线程卖完,ticket=-2,此后无论怎么判断都不会进入if语句中的break,所以出现了问题

 System.out.println(Thread.currentThread().getName() + "窗口准备卖票");if (ticket == 0) {System.out.println("已售罄");break;}synchronized (obj) {System.out.println(Thread.currentThread().getName()+"售票一张,余票:"+ --ticket);}

如果把注释中的sleep语句加上

//            if(ticket<10) {
//                try {
//                    sleep(1000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }

运行结果

这就是因为sleep导致在判断之前甲乙丙三个线程就卡在那,不容易遇到两个以上线程同时都通过了if语句判断的情况

然而,再对代码稍加改动,

if(ticket<10) {

改为

if(ticket<11) {

结果又成了这样了

一个框的大小合适的代码长这样

System.out.println(Thread.currentThread().getName() + "窗口准备卖票");synchronized (Object.class) {//反射if (ticket == 0) {System.out.println("已售罄");break;}System.out.println(Thread.currentThread().getName()+"售票一张,余票:"+ --ticket);}

因此结论:

同步代码块既不能太少也不能太多

http://www.lbrq.cn/news/2566621.html

相关文章:

  • wordpress 代做网站拓客平台有哪些
  • 中国建设银行网站 公司机构客户佛山网站建设公司
  • 网站集约化平台建设分析专业网站优化
  • 12380网站建设情况汇报深圳网络推广引流
  • 建设一个旅游网站毕业设计百度店铺怎么入驻
  • wordpress 页面开发教程马鞍山网站seo
  • 河南代做网站semikron
  • 厦门建设与管理局网站优化系统的软件
  • 狗和人做愛网站谁知道好推建站
  • 北京建站公司哪个好百度识图在线使用一下
  • 网站的构造西安今天刚刚发生的新闻
  • 如何做企业网站及费用问题网站优化推广哪家好
  • 外贸网站个性设计百度seo引流怎么做
  • 泰州住房城乡建设网站怎样注册网站
  • 网站建设自己在家接单上海网站建设推广服务
  • 南京做网站哪家公司最好网络推广方法大全
  • 门户网站开发需求分析浙江网站推广公司
  • 企业网站颜色如何免费创建自己的网站平台
  • 个人网站要怎么做特色产品推广方案
  • 什么是网站抄袭免费建网站
  • 微网站栏目设置游戏交易平台
  • 张家口建设部网站2023年10月爆发新冠
  • 注册公司代理记账费用朝阳seo建站
  • 电子商务网站建设视频教程最新旅游热点
  • 做网站应该用什么镜像百度排名软件
  • 成都房地产网搜索引擎优化实训
  • 有什么网站可以做java算法免费模板素材网站
  • 自己如何做网站源码百度热线人工服务电话
  • 设计官网论坛苏州关键词优化软件
  • 网站主题制作一键建站
  • 网页操作自动化解决方案:如何用Browser-Use+CPolar提升企业运营效率
  • 再见!三层框架开发
  • 分类预测 | Matlab实现CPO-PNN冠豪猪算法优化概率神经网络多特征分类预测
  • 【Linux】Linux下基本指令
  • es的histogram直方图聚合和terms分组聚合
  • 【生活篇】Ubuntu22.04安装网易云客户端