线程同步(一)

简介: package cc; // //其实在此例子中是有漏洞的。存在安全隐患。 //因为多线程的随机性,这样的话,可能卖出负数(或者重复)的票,出现了问题。
package cc;

//
//其实在此例子中是有漏洞的。存在安全隐患。
//因为多线程的随机性,这样的话,可能卖出负数(或者重复)的票,出现了问题。多执行几次便可出现
//
//这里有一个问题很值得注意:这里的异常只可以try catch但是不可以抛出!!!为什么呢?
//因为Runnable接口在定义时没有异常抛出,所以实现了此接口的类也不可以抛出,只能try catch!!!
//
//参见线程同步(二)的改进
class Test3 {
	public static void main(String[] args) {
		Ticket t = new Ticket();// 这里只建立了一个对象
		Thread tr1 = new Thread(t);
		Thread tr2 = new Thread(t);
		Thread tr3 = new Thread(t);
		tr1.start();
		tr2.start();
		tr3.start();
	}
}

class Ticket implements Runnable {
	int num = 10;

	public void run() {// 安全隐患的代码!!这里用的是sleep来模拟了一些异常,比如网络延时!
		while (true) {
			if (num > 0) {
				try {
					Thread.sleep(1000);
				} catch (Exception e) {
					e.toString();
				}
				System.out.println(Thread.currentThread().getName() + "……现在卖出第"
						+ num-- + "号票");
			}
		}

	}

}

相关文章
|
定位技术 开发工具 图形学
|
分布式计算 Serverless 调度
EMR Serverless Spark:结合实时计算 Flink 基于 Paimon 实现流批一体
本文演示了使用实时计算 Flink 版和 Serverless Spark 产品快速构建 Paimon 数据湖分析的流程,包括数据入湖 OSS、交互式查询,以及离线Compact。Serverless Spark完全兼容Paimon,通过内置的DLF的元数据实现了和其余云产品如实时计算Flink版的元数据互通,形成了完整的流批一体的解决方案。同时支持灵活的作业运行方式和参数配置,能够满足实时分析、生产调度等多项需求。
61079 107
|
Ubuntu Linux 网络安全
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
364 1
从头安装Arch Linux系统
|
12月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
189 4
|
PHP
PHP中的面向对象编程:理解类与对象
本文将深入探讨PHP中面向对象编程的核心概念——类与对象。通过实例讲解,帮助读者更好地理解如何在PHP中运用OOP编写更高效、可维护的代码。
135 9
|
Oracle 关系型数据库 数据库
关系型数据库Oracle执行RMAN脚本
【7月更文挑战第22天】
315 2
|
数据可视化 前端开发 JavaScript
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
|
XML 数据可视化 数据格式
【数据集显示标注】VOC文件结构+数据集标注可视化+代码实现
【数据集显示标注】VOC文件结构+数据集标注可视化+代码实现
686 0
|
安全 数据可视化 关系型数据库
测试N次,阿里云centos7安装mysql5.7,看完这篇一次过!
最近闲来无事,买了一个阿里云的服务器,想部署一下自己的项目,于是就开始了艰难的阿里云部署之旅,最开始尝试了很多的CSDN和博客园的文章,很多都以失败告终,最终在不断的试错和热心网友的解释,终于装成功了,特发一篇博客记录一下。这里选择的是在线安装,5.7版本的。
771 2
|
前端开发 数据管理
012 Umi 的数据流最佳实践(1/2) - 页面级的 hooks 数据流
012 Umi 的数据流最佳实践(1/2) - 页面级的 hooks 数据流
642 0
012 Umi 的数据流最佳实践(1/2) - 页面级的 hooks 数据流