stopwatch vector是线程安全的吗吗

相关文章推荐
今天为了测试算法性能,在C++下实现了一个类似.net StopWatch类的一个类。为了看.net是怎么做的,就把.net的StopWatch 类的源码反编译出来看了下。 虽然最后我成功实现了C++...
父进程 等待子进程初始化后才使用子进程_waitforinputidle
在进程中创建子进程是很常见的话题。常规的方法是用CreateProcess(),这个函数功能强大,使用起...
转自/cxwx/archive//1932620.html
补充说明,尤其一开始自己没注意到 “程序员之窗”网站提供了示例下载...
StringBuilder 有效的字符串操作
· 当大量进行字符串操作的时候,如字符串的拼接操作;
·string对象是不可变得,每次使用System.String类中的一个方法时,都要在内存中创建一...
简单总结一句,Spring提供的计时器StopWatch对于秒、毫秒为单位方便计时的程序,尤其是单线程、顺序执行程序的时间特性的统计输出支持比较好。也就是说假如我们手里面有几个在顺序上前后执行的几个任...
string在进行运算时(如赋值、拼接等)会产生一个新的实例,而StringBuilder则不会。
所以在大量字符串拼接或频繁对某一个字符串进行操作时最好使用StringBuilder,而非stri...
转载自:http://blog.csdn.net/eg366/article/details/
[html] view
时间函数在我们的程序中是使用频率较高的函数,现将其归纳总结一下,这一章主要讲下CTime 和CTimeSpan,前者表示一个时间点,而后表示一个时间段。CTime代表的是绝对时间,CTime andC...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)stopwatch 2009
投诉建议:
千万流量共享 百度高权重排名
软件大小: 6.05 MB
软件厂商:
软件语言: 未知
软件授权: 免费
软件评级:
应用平台:WinAll
更新时间:
编辑推荐:
stopwatch(高精度秒表/跑表)是一款为Windows设计的高性能,多线程,多组别,多任务,可编程的秒表(跑表)。功能如下:1.高性能:1/1000秒~1/1,000,000秒精度,仅仅受限于机器硬件和操作系统。2.多线程:高性能保证。3.多组别:最多8组秒表可同时工作。4.多任务:可以记录每组秒表的任意时刻。5.可编程:其他程序可以任意控制秒表。6.报告:详细报告每个秒表数据。7.LCD样式。8.容易使用。
1MB|7MB|2MB|2MB|1MB|716.0KB|
聚超值推荐
今日更新推荐
软件分类目录
同类软件下载排行
热门关键词相关文章推荐
生产者会生产出很多消息 , 但是不同的消费者可能会有不同的需求,只需要接收指定的消息,其他的消息需要被过滤掉。 这时候就可以对消息进行过滤了。 在消费者端设置好需要接收的消息类型。
如果不使用默认...
文章参考来源: lzhou666的 /skyblog/p/5129603.html要使用spring cloud分布式配置文件总体上分为3个大的步骤:1.首...
现在我的一部分工作就是优化客户端的性能,比如优化列表快速滑动卡顿现象。
一个很好的办法就是使用DDMS的Method Profiling功能,它可以生成一个表格来显示app中所有执行的方法的...
StopWatch 提供一个时间片记录的API,该类是有apache下lang包中提供的,另外可以参考spring框架中的一个类似工具类,实现效果稍微不同,但都是提供一个时间记录功能,见另一篇:htt...
listview中的item,倒计时,设置倒计时时长及倒计时间隔
概述毫无疑问,我们先来看下官方文档中给的介绍CountDownTimer官方定义如下:
Schedule a countdown until a time in the future, with ...
我们在做有关短信验证码功能的时候,为了防止用户无休止的获取短信验证码,或者是误操作,造成验证码混乱的情况,我们一般在获取验证码功能的Button上面加上倒计时功能,从而限制用户获取验证码的间隔。Cou...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)java多线程实现mq消息处理超时监控&&
项目运用rabbitMq 实现的分布式架构,每台机器既是生成者也是消费者,改项目依赖于外部调度服务,mq的consumer listener引用其他组的jar包(实现对外部资源的调用),消息消费是单线程的,在此调用jar包操作业务或者是个人代码写的有问题,可能导致线程死锁,或者其他代码问题(http请求未设置超时),导致消息消费被卡住,最终消息堆积。导致正常业务垮掉。既然consumer没配置消息的超时时间,java支持多线程,那么可以用来完美解决,worker线程执行任务,protect线程◇◇worker线程判断执行时间,(其实这两个线程都是在同时互相◇◇,各自执行完毕stop未执行完成的线程)不啰嗦直接上代码
&BaseThreadUtil类 worker 线程和protect线程集成该抽象类
* Created by liweigao on .
public abstract class BaseThreadUtil extends Thread {
public abstract void execute();//抽象方法需要子类实现
private String threadName = &&;
//在父类重写run方法,在子类只要重写execute方法就可以了
public void run() {
super.run();
execute();
//在需要回调数据的地方(两个子类需要),声明一个接口
public static interface Callback {
public void complete();
//2.创建接口对象
public String getThreadName() {
return threadN
public void setThreadName(String threadName) {
this.threadName = threadN
&worker 线程类 执行主要业务线程。
* Created by liweigao on .
public class WorkerThread extends BaseThreadUtil {
private Logger logger = LoggerFactory.getLogger(WorkerThread.class);
public WorkerThread(Runnable runnable, String threadName) {
this.runnable =
if (threadName != null && !&&.equals(threadName)) {
super.setThreadName(threadName);
super.setThreadName(&worker thread&);
public void execute() {
StopWatch stopWatch=new StopWatch();
stopWatch.start();
if (runnable != null) {
runnable.run();
stopWatch.stop();
System.out.println(&线程:& + super.getThreadName() + &执行完毕,开始执行回调……&);
logger.debug(&线程:& + super.getThreadName() + &执行完毕,开始执行回调……耗时:&+stopWatch.getTotalTimeMillis() +&ms&);
//任务执行完毕
&protect 线程类。
* Created by liweigao on .
public class ProtectThread extends BaseThreadUtil {
private Logger logger = LoggerFactory.getLogger(ProtectThread.class);
private Integer timeout = 6000;
public ProtectThread(Integer timeout, String threadName) {
this.timeout =
if (threadName != null && !&&.equals(threadName)) {
super.setThreadName(threadName);
super.setThreadName(&protect thread&);
public void execute() {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
Thread.sleep(timeout);
} catch (InterruptedException e) {
logger.error(e.getMessage(), e);
stopWatch.stop();
System.out.println(&线程:& + super.getThreadName() + &执行完毕,开始执行回调……&);
logger.debug(
&线程:& + super.getThreadName() + &执行完毕,开始执行回调……耗时:& + stopWatch.getTotalTimeMillis() + &ms&);
//线程任务执行完毕 执行回调
&baseStopUtil 类 也可以叫回调类,处理未完成线程。
* Created by liweigao on .
public class BaseStopUtil implements Callback {
private Logger logger = LoggerFactory.getLogger(BaseStopUtil.class);
BaseThreadUtil baseCallBackU
// 获取对象
public BaseStopUtil(BaseThreadUtil baseCallBackUtil) {
this.baseCallBackUtil = baseCallBackU
public void complete() {
System.out.println(&线程:& + baseCallBackUtil.getThreadName() + &被停掉……&);
logger.debug(&线程:& + baseCallBackUtil.getThreadName() + &被停掉……&);
if (baseCallBackUtil.isAlive()) {
baseCallBackUtil.stop();
ListenThreadConsumer 封装对外调用方法,启动两个线程,配置超时时间。
* Created by liweigao on .
public class ListenThreadConsumer {
* 过期时间
* 检测间隔时间 默认1000
public ListenThreadConsumer(Integer timeout, Runnable runnable) {
this.timeout =
this.runnable =
public void execute() {
ProtectThread protectThread = new ProtectThread(timeout, &&);
WorkerThread workerThread = new WorkerThread(runnable, &&);
protectThread.callback = new BaseStopUtil(workerThread);
workerThread.callback = new BaseStopUtil(protectThread);
protectThread.start();
workerThread.start();
&那么就可以很简单的运用到自己的程序中了。main方法测试。
public static void main(String[] args) {
ListenThreadConsumer listenThreadConsumer = new ListenThreadConsumer(100, new Runnable() {
public void run() {
System.out.println(&这是我的测试……………………&);
//执行任务以及监控
listenThreadConsumer.execute();
打印日志:
这是我的测试……………………
18:56:50.916 [Thread-1] DEBUG c.w.s.c.util.thread.WorkerThread-[34] - 线程:worker thread执行完毕,开始执行回调……耗时:1ms
18:56:50.922 [Thread-1] DEBUG c.w.s.c.util.thread.BaseStopUtil-[23] - 线程:protect thread被停掉……&
以上完毕,可直接copy复用。以上信息欢迎大神吐槽,欢迎提建议。互相监控,其中哪一个线程有问题,都会被停掉。
被转藏 : 1次
被转藏 : 1次您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
《细细品味C#(Timer及多线程编程)》.pdf 121页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:168 &&
《细细品味C#(Timer及多线程编程)》.pdf
你可能关注的文档:
··········
··········
细细品味 C#
——Timer 及多线程编程
虾皮工作室
/xia520pi/
2011 年 10 月 4 日
创建时间:
修改时间:
修改次数:0
1、C# 的Timer解析 3
1.1、版权声明3
1.2、内容详情3
2 、Timer范例教程17
2.1 、版权声明17
2.2 、内容详情17
3、Socket网络编程大全23
3.1、版权声明23
3.2、内容详情23
简单服务器端23
简单客户端24
获得本机IP 24
端对端通信25
点对点通信25
3.2.6 UDP对时服务器端27
3.2.7 UDP对时客户端28
点对点传输文件30
发送邮件33
接收邮件33
4 、多线程使用thread 、threadpool 、timer44
4.1 、版权声明44
4.2 、内容详情44
5、谈谈多线程的思维方式52
5.1、版权声明52
5.2、内容详情52
6、断点续传、多线程上载59
6.1、版权声明59
6.2、内容详情59
7、C#多线程学习66
7.1、版权声明66
7.2、内容详情66
多线程的相关概念66
如何操纵一个线程68
生产者和消费者71
多线程的自动管理(线程池) 81
多线程的自动管理(定时器Timer)
互斥对象Mutex 87
8、C#多线程编程91
8.1、版权声明91
8.2、内容详情91
河北工业大学——软件工程与理论实验室
编辑:虾皮
创建时间:
修改时间:
修改次数:0
8.2.1 lock使用注意事项91
集合类中Synchronized与SyncRoot属性原理分析93
8.2.3 Monitor使用示例及Mutex简介99
同步事件和等待句柄102
8.2.5 Timer
(定时器)使用示例105
8.2.6 volatile关键字的原理探讨107
8.2.7 Interlocked类操作 108
使用Semaphore类限制资源并发访问数109
正在加载中,请稍后...

我要回帖

更多关于 gson是线程安全的吗 的文章

 

随机推荐