我看了一些面试问题,在网上关于你如何发现是否有一个链表一环,和解决方案(Floyd的循环查找算法)是有两个指针,一个是比其他快2倍,并检查他们再次相遇.
我的问题是:为什么我不能只保持一个指针固定,只是每次将另一个指针向前移动1步?
我有一个部署到Tomcat服务器的WAR文件,其中一个类将在启动时调用,然后init()方法将安排一个计时器每5小时触发一次以执行某些任务.
我的init()代码如下所示:
public void init()
{
TimerTask parserTimerTask = new TimerTask() {
@Override
public void run() {
XmlParser.parsePage();
}
};
Timer parserTimer = new Timer();
parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序运行没有问题,但当我使用/etc/init.d/tomcat7停止关闭Tomcat时,我检查日志(catalina.out)它有一个这样的条目:
严重:Web应用程序[/ MyApplication]似乎已经启动了一个名为[Timer-0]的线程,但未能阻止它.这很可能造成内存泄漏.
我明白这是由我安排计时器引起的,但我的问题是:
setDeamon
为true,所以定时器不应该阻止Tomcat关闭,而不是继续运行?谢谢!
UPDATE
我根据一些搜索和DaveHowes的答案将我的代码更改为以下内容.
Timer parserTimer;
TimerTask parserTimerTask;
public void init()
{
parserTimerTask = new TimerTask() {
@Override
public void run() {
XmlParser.parsePage();
}
};
parserTimer = new Timer();
parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
Logger logger …
Run Code Online (Sandbox Code Playgroud) 我正在使用这样的东西来计算我的程序从头到尾需要多长时间:
int main(){
clock_t startClock = clock();
.... // many codes
clock_t endClock = clock();
printf("%ld", (endClock - startClock) / CLOCKS_PER_SEC);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,既然有多个进程在同一时间运行,比如说我的进程处于空闲状态的时间是多长时间,那么那个时间会在我的程序中计时?
所以基本上我关心的是,比如说已经过了1000个时钟周期,但是我的进程只使用了500个,我会从500还是1000 (endClock - startClock)
?
谢谢.
有没有办法改变Title
Live Tile图标的颜色?
在BackgroundImage
使用我有一个白色的背景,所以我看不到Title
现在的权利.
另一种方法是削减我的底部BackgroundImage
,其中Title
IS,使之透明,如果我不能改变文字颜色,没有任何人有一个更好的解决方案?
谢谢!
algorithm ×1
c ×1
java ×1
java-ee ×1
linked-list ×1
performance ×1
time ×1
tomcat ×1
tomcat7 ×1