线程同步(一)

简介: 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-- + "号票");
			}
		}

	}

}

相关文章
|
4月前
|
Java
多线程线程同步
多线程的锁有几种方式
|
设计模式 安全 算法
线程同步
线程同步
65 0
|
安全 Windows
【线程安全问题】线程互斥与线程同步技术(上)
【线程安全问题】线程互斥与线程同步技术
【线程安全问题】线程互斥与线程同步技术(上)
|
安全 程序员
【线程安全问题】线程互斥与线程同步技术(下)
【线程安全问题】线程互斥与线程同步技术
3.8~3.14 线程同步
3.8~3.14 线程同步
90 0
3.8~3.14 线程同步
|
安全
线程同步 (二)
线程同步 (二)
180 0
线程同步 (二)
|
调度
多线程-2(线程同步
今天我们来了解下什么是线程同步?
141 0
多线程-2(线程同步
C#线程同步深入
C#线程同步问题深究及解决方案
160 0
C#线程同步深入