📄 testevent.java
字号:
/**********************************************************************
contest ver 1.0
一个简单的并发系统动态测试工具
Copyright (C) 2003, 2004 王咏刚
作者对 contest 软件及其所有源代码授权如下:
允许任何个人、学术机构、公司无偿获得、修改、使用、重新发布 contest 软
件及其源代码,并可以按照有偿或者无偿的方式发行基于 contest 源代码的全
部或部分内容开发的软件产品,——但行使以上权利时,须遵守以下约定:
1、重新发布 contest 软件及其源代码时,不得隐去软件以及源代码中原有
的版权信息和开发者标识。
2、发行基于 contest 源代码的全部或部分内容开发的软件产品时,必须在
产品的显著位置标明以下字样:
“本产品的一部分功能是基于王咏刚在 contest 软件中的工作完成的”
3、在正式出版物中引用 contest 的文档、源代码或注释内容的,应注明软
件的原作者。
王咏刚
2004. 1
**********************************************************************/
package contest;
// 对并发系统测试时使用的同步事件类
public class TestEvent
{
// 事件名称
private String name;
// 为事件加锁时使用的对象
private Object lock = new Object();
public TestEvent(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
// 暂停当前线程的执行,等待此事件
public void waitFor()
{
waitFor(0);
}
// 暂停当前线程的执行,等待此事件timeout毫秒
public void waitFor(long timeout)
{
synchronized(lock)
{
try{ lock.wait(timeout); }
catch (InterruptedException e) {}
}
}
// 激活此事件,让所有等待此事件的线程继续执行
public void setEvent()
{
synchronized(lock)
{
try{ lock.notifyAll(); }
catch (IllegalMonitorStateException e) {}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -