并发耗时计算模拟

import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class FutureTaskDemo {
	public static void main(String[] args) {
		// 初始化一个Callable对象和FutureTask对象
		Callable pAccount = new PrivateAccount();
		FutureTask futureTask = new FutureTask(pAccount);

		// 使用futureTask创建一个线程
		Thread pAccountThread = new Thread(futureTask);
		System.out.println("futureTask线程现在开始启动,启动时间为:" + System.nanoTime());
		pAccountThread.start();
		System.out.println("主线程开始执行其他任务");
		// 从其他账户获取总金额
		int totalMoney = new Random().nextInt(100000);
		System.out.println("现在你在其他账户中的总金额为" + totalMoney);

		System.out.println("等待私有账户总金额统计完毕...");
		// 测试后台的计算线程是否完成,如果未完成则等待
		while (!futureTask.isDone()) {
			try {
				Thread.sleep(500);
				System.out.println("私有账户计算未完成继续等待...");
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		System.out.println("futureTask线程计算完毕,此时时间为" + System.nanoTime());
		Integer privateAccountMoney = null;
		try {
			privateAccountMoney = (Integer) futureTask.get();
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
		System.out.println("您现在的总金额为:" + totalMoney
				+ privateAccountMoney.intValue());
	}
}

@SuppressWarnings("all")
class PrivateAccount implements Callable {
	Integer totalMoney;

	public Object call() throws Exception {
		Thread.sleep(5000);
		totalMoney = new Integer(new Random().nextInt(10000));
		System.out.println("您当前有" + totalMoney + "在您的私有账户中");
		return totalMoney;
	}

}

时间: 2024-10-10 06:25:22

并发耗时计算模拟的相关文章

导出Excel 或 大量耗时计算时,前端界面保持可操作

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; namespace WinformTest { public partial cla

xFlow 2014 build 92 Win64 1CD流体动力学(CFD)计算模拟软件

xFlow 2014 build 92 Win64 1CD流体动力学(CFD)计算模拟软件 流体模拟软件 NextLimit.RealFlow.2014.v8.1.1.0179.Win64 1CDXFlow是一款强大的软件,使用具有专利的基于粒子.完整拉格朗日函数,能够在工程.设计.科学和建筑领域简单的处理传 统的复杂计算流体动力学(CFD)问题.XFlow具有仿真模拟气体和液体流动.热量和质量转移.移动体.多相物理学.声学 和流体结构作用的能力.■□■□■□■□■□■□■□■□■□■□■□■□

[LeetCode] 数学计算模拟类问题:除法和幂,注意越界问题。题 Pow(x, n) ,Divide Two Integers

引言 数学计算的模拟类题目,往往是要求实现某种计算(比如两数相除),实现的过程中会有所限定,比如不允许乘法等等. 这类题目首先要注意计算过程中本身的特殊情况.比如求相除,则必须首先反映过来除数不能为0. 其次要记得考虑负数的情况,如果计算范围不单单是整数,还要考虑double的比较方式. 最后要注意越界情况,这个是最容易犯错的,只能具体问题具体分析. 例题 1 Pow(x, n) Implement pow(x, n). class Solution { public: double pow(d

timer命令行耗时计算工具【下载】

开发背景 有时我们需要计算程序运行过程中所需要的耗时,但CMD没有相关命令可以直接使用,为此本人开发了一个计算耗时的脚本程序timer.cmd,可以很方便地在批处理中调用,以计算两个时间点之间的耗时.该脚本程序方便易用,现在共享给大家,需要的朋友拿去不谢. 使用说明 计算程序运行所需耗时. TIMER [time_start] [time_end] time_start       时间格式为"时:分:秒",与CMD环境下time变量相同. time_end         时间格式为

1549: Navigition Problem (几何计算+模拟 细节较多)

1549: Navigition Problem Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 256 Mb     Submitted: 400     Solved: 122 Description Navigation is a field of study that focuses on the process of monitoring and controlling the movement of a cr

性能测试---并发用户计算

性能测试---并发用户 并发用户数 大家都知道我们的性能测试就通过工具模拟多用户对系统进行操作,对系统造成压力,来验证系统的性能(不太标准的解释).好多人也简单的把性能测试当成并发测试.那么这个"多用户"和"同时"两个因素缺一不可.只多用户不同时,很难对系统构成压力:没有多个用户,同时的概念也就自然不存在了 并发的两种情况 一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操作一般指做同一类型的业务.比如,所有用户同一时刻做并发登陆,同一时刻做表单

并发量计算

1.业务并发用户数:2.最大并发访问数:3.系统用户数:4.同时在线用户数:假设一个OA系统有1000用户,这是系统用户数:最高峰同时有500人在线,是"同时在线人数",也称作"最大业务并发用户数":500个同时使用系统用户中20%查看系统公告,不构成压力:20%填写表格(只在提交时才会请求,填写对服务器不构成压力):40%在发呆(什么都没做):20%用户不停从一个页面跳转另一个页面(只有这20%对服务器产生了压力).说明服务器实际压力,能承受的最大并发访问数,既取

并发数计算

与并发用户数相关的概念还包括“并发用户数”.“系统用户数”和“同时在线用户数”,下面用一个实际的例子来说明它们之间的差别.假设有一个OA系统,该系统有2000个使用用户——这就是说,可能使用该OA系统的用户总数是2000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能(系统用一个全局变量记数所有已登录的用户),从在线统计功能中可以得到,最高峰时有500人在线(这个500就是一般所说的“同时在线人数”),那么,系统的并发用户数是多少呢?根据我们对业务并发用户数的定义,这500就是整个系

hdu 2206 IP的计算 模拟

IP的计算 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7980    Accepted Submission(s): 1570 Problem Description 在网络课程上,我学到了很多有关IP的知识.IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来