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

潍坊个人网站制作门户网站营销

潍坊个人网站制作,门户网站营销,免费ppt模板公众号,photoshop电脑版怎么安装售票系统 假设您正在开发一个基于Java多线程技术的售票系统。该系统需要支持多个售票窗口同时进行售票操作,并且要确保不会出现超卖或漏卖的情况。具体来说,系统应该具备如下特点: 票的数量有限:初始时系统中有100张票。 多线程…

售票系统

假设您正在开发一个基于Java多线程技术的售票系统。该系统需要支持多个售票窗口同时进行售票操作,并且要确保不会出现超卖或漏卖的情况。具体来说,系统应该具备如下特点:

  1. 票的数量有限:初始时系统中有100张票。

  2. 多线程售票:系统支持多个售票窗口同时进行售票操作。

  3. 线程安全:必须确保即使在高并发情况下也不会出现超卖或漏卖的问题。

Runnable

==查看结果,分析代码==

public void run() {while (true) {if (count > 0) {System.out.println(Thread.currentThread().getName() + "正在卖第" + count + "张票");count--;try {Thread.sleep(100);} catch (Exception e) {e.printStackTrace();}} else {break;}}
}

==加上同步锁==

public void run() {while (true) {synchronized (this) {if (count > 0) {System.out.println(Thread.currentThread().getName() + "正在卖第" + count + "张票");count--;try {Thread.sleep(100);} catch (Exception e) {e.printStackTrace();}} else {break;}}}
}

==注意同步锁的位置==

public void run() {while (count > 0) {synchronized (this) {System.out.println(Thread.currentThread().getName() + "正在卖第" + count + "张票");count--;try {Thread.sleep(100);} catch (Exception e) {e.printStackTrace();}}}
}

Thread

public class TicketOffice {
​private Integer count = 100;
​public synchronized Integer getCount() {return count;}
​public synchronized void sell() {if (count > 0) {count--;System.out.println("正在卖第" + count);}}
​
}
public class TicketSeller extends Thread {
​private TicketOffice office;private String name;
​public TicketSeller(TicketOffice office, String name) {this.office = office;this.name = name;}
​@Overridepublic void run() {while (true) {synchronized (this) {if (office.getCount() > 0) {try {office.sell();Thread.sleep(100); // 模拟售票延迟} catch (InterruptedException e) {e.printStackTrace();}} else {break;}}}}
​
}

==在synchronized块内的操作,确实是在该块执行完毕前不会被其他线程打断的。==

==但是,如果在这个同步块内调用了某个非同步的方法,并且这个方法修改了共享资源,那么就有可能会出现线程安全问题。==

synchronized块的作用范围

在一个代码块上使用synchronized关键字时,该块内的所有操作都会被视为原子的,在该块内不会被其他线程打断。

然而,这种保证仅限于该同步块内。如果在同步块内调用了一个非同步的方法,那么该方法的操作就不受该同步块的保护,可能会被其他线程干扰。

http://www.dtcms.com/wzjs/570616.html

相关文章:

  • 怎样做网站标题的图标北京网站开发公司一网天行
  • 招远建网站南阳企业做网站
  • 做填写信息的超链接用什么网站关于网络编辑作业做网站栏目新闻的ppt
  • 建网站要多少费用旺道seo推广
  • 网站验收确认wordpress数据文件路径
  • 九江公司网站建设网站建设 四川
  • 网站设计公司要多少钱常见网页设计
  • 琼海商城网站建设创意定制
  • 网站运营与管理试卷全网万能搜索引擎
  • 网站域名怎么购买软件安卓下载
  • 网站建设用细节取胜网页seo是什么意思
  • 营销型的网站企业网站建设哪家学校好
  • 淄博网站开发选网泰网站做自适应好不好
  • 请问大连谁家做网站在网站开发中如何设置登录
  • 百度SEO是谁做的网站东仓建设网站
  • 北京进入紧急状态网站页面怎么优化
  • 深圳工信部网站备案信息查询安卓开发和网站开发
  • 网站设计英语wordpress 多媒体播放
  • 网站开发后怎么转安卓app什么系统做网站最安全
  • 北京网站建设 性价比怎么注册公司名字
  • 成都营销型网站公司电话阿里巴巴官网下载
  • 衡水哪儿专业做网站让网站不要保存密码怎么做
  • wordpress 最好的插件seo行业岗位
  • 网站备案为何要关站扬中人才招聘网
  • ps做图下载网站有哪些大学生人才招聘网官网
  • 基于phpmysql的网站开发黄岛网站建设负面消息处理
  • 网站成功案例怎么做localhost wordpress
  • 河北中太建设集团有限公司网站厦门网站制作计划
  • 做程序界面的网站58同城买房网
  • 建立单页网站中国建筑出国招聘网