一个基于atomic的卖票测试
package testAtomic;
import java.util.concurrent.atomic.AtomicInteger;
import sun.security.krb5.internal.Ticket;
public class Tictit {
private AtomicInteger ticitNumber;
public Tictit (AtomicInteger ticAtomicInteger)
{
this.ticitNumber=ticAtomicInteger;
}
public AtomicInteger getTicitNumber() {
return ticitNumber;
}
package testAtomic;
public class MyThread implements Runnable {
private Tictit tictit=null;
public MyThread(Tictit tictit)
{
this.tictit=tictit;
}
public void run() {
for(int i=0;i<10;i++)
{
if(tictit.getTicitNumber().get()>0)
{
int a=tictit.getTicitNumber().addAndGet(-1);
System.out.println("当前线程:"+Thread.currentThread().getName()+" "+a);
}
}
}
}
package testAtomic;
import java.util.concurrent.atomic.AtomicInteger;
public class MyAotomicTest {
int number=10;
public static void main(String []args)
{
MyAotomicTest test=new MyAotomicTest();
Tictit tictit=new Tictit(new AtomicInteger(100));
MyThread myThread=new MyThread(tictit);
Thread []threads=new Thread[test.number];
for(int i=0;i<threads.length;i++)
{
threads[i]=new Thread(myThread,"第"+i+"个线程");
}
for(int i=0;i<threads.length;i++)
{
threads[i].start();
}
}
}
一个基于atomic的卖票测试的更多相关文章
- 自动化测试: sikuli,一个基于界面图像的gui测试框架
http://www.sikuli.org/ license: MIT script language: Python 下面是他的一个hello world的例子,看看也挺有意思的. 开源的世界里有很 ...
- JUC 并发编程--01,线程,进程,经典卖票案例, juc的写法
进程: 就是一个程序, 里面包含多个线程, 比如一个QQ程序 线程: 进程中最小的调度单元, 比如 QQ中的自动保存功能 并发: 多个线程操作同一资源, 抢夺一个cpu的执行片段, 快速交替 并行: ...
- 一个基于.NET平台的自动化/压力测试系统设计简述
AutoTest系统设计概述 AutoTest是一个基于.NET平台实现的自动化/压力测试的系统,可独立运行于windows平台下,支持分布式部署,不需要其他配置或编译器的支持.(本质是一个基于协议的 ...
- 一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透测试和开发调试。
源码地址:https://github.com/wuchangming/node-mitmproxy node-mitmproxy node-mitmproxy是一个基于nodejs,支持http/h ...
- 构建一个基于 Spring 的 RESTful Web Service
本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...
- Java多线程卖票例子
package com.test; public class SaleTickets implements Runnable { private int ticketCount = 10;// 总的票 ...
- 【Python + Selenium】Mock Testing 是啥?一个so上的高票答案。
There are many kinds of testing which really made me confused. To be honest, I've never heard of som ...
- 关于实现一个基于文件持久化的EventStore的核心构思
大家知道enode框架的架构是基于ddd+event sourcing的思想.我们持久化的不是聚合根的最新状态,而是聚合根产生的领域事件.最近我在思考如何实现一个基于文件的eventstore.目标有 ...
- java多线程实现卖票小程序
package shb.java.demo; /** * 多线程测试卖票小程序. * @Package:shb.java.demo * @Description: * @author shaobn * ...
随机推荐
- iOS AVCaptureVideoDataOutputSampleBufferDelegate 录制视频
iOS AVCaptureVideoDataOutputSampleBufferDelegate 录制视频 应用场景: 使用AVFoundation提供的API, 我们可以从 AVCaptureVid ...
- MySQL初级培训
按照一个MySQL DBA在工作中接触到部分的先后顺序,编排培训目录如下. 字段选取 int , decimal, char , varchar , blob ,timestamp SQL优化 exp ...
- 那些年独自踩过的flascc的坑
[一个工程中使用多个flascc编译出来的swc] 1.如果是swf工程, 工程中同时使用多个flascc编译出来的swc, 可以顺利通过. 2.如果是swc工程, 工程中同时使用多个flascc编译 ...
- C#高级知识点概要(2) - 线程和并发
原文地址:http://www.cnblogs.com/Leo_wl/p/4192935.html 我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的.我希望通过自己的经验 ...
- jmeter 监听的介绍
一个侦听器是一个组件,显示的结果 样本. 结果可以显示在一个树,表格,图表或简单地写入到日志中 文件. 查看的内容反应任何给定的采样器,添加的监听器” 视图 结果树 ”或“ 视图的结果表 一个测试计划 ...
- web基础之hibernate(一篇)
hibernate的一些基本的认识 1. hibenate是一个框架(framework) 2. hibernate是一个orm框架 3. orm(object r ...
- hdu-----(1507)Uncle Tom's Inherited Land*(二分匹配)
Uncle Tom's Inherited Land* Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- uva---(11549)CALCULATOR CONUNDRUM
Problem C CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can display n digits. She ...
- Android画一条横线
<View android:layout_width="match_parent" android:layout_height="1px" android ...
- easyUI dialog 弹窗 居中显示
默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...