java调用方法次数_java – 计算方法调用的次数

本文探讨如何在Java中计算特定服务通过.startService()方法调用的次数。示例展示了一个服务依赖系统,其中不同服务依赖于其他服务,并试图在启动时输出依赖的计数。当前代码实现只能获取全局调用次数,而目标是获取每个服务的依赖计数。文章提出了问题并提供了部分代码以供讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我如何计算时间是多少依赖.startService();方法调用?不同的服务正在调用这种方法,我不想知道每个人如何调用该方法,但单个服务.我应该得到这个输出:

My name is Service B and i'm depending on Service A

My name is Service C and i'm depending on Service A

My name is Service D and i'm depending on Service B

***Service Service C lets start!***

1

***Service Service D lets start!***

2

实际上,这个数字应该意味着这两个服务所依赖的服务数量.

你有什么想法我怎么能这样做?

我已经尝试了,我只能得到全局号码,那个方法女巫是3.

这是我的代码:

ManagerService.java

import java.util.*;

import java.util.concurrent.CountDownLatch;

public class ManagerService

{

public static void main(String[] args) throws InterruptedException

{

//Creating Services

Service serviceA = new Service("Service A", "Thread A");

Service serviceB = new Service("Service B", "Thread B");

Service serviceC = new Service("Service C", "Thread C");

Service serviceD = new Service("Service D", "Thread D");

serviceB.dependesOn(serviceA);

serviceC.dependesOn(serviceA);

serviceD.dependesOn(serviceB);

System.out.println();

System.out.println("***Service " + serviceC.serviceName +" lets start!***");

serviceC.startService();

System.out.println();

System.out.println("***Service " + serviceD.serviceName +" lets start!***");

serviceD.startService();

}

}

and

Service.java

import java.util.ArrayList;

import java.util.List;

import java.util.concurrent.CountDownLatch;

import java.util.concurrent.atomic.AtomicInteger;

public class Service

{

public String serviceName;

public String threadName;

private boolean onOrOff = false;

public List dependentServicesOn = new ArrayList ();

public CountDownLatch startSignal;

private Integer counter = 0;

public Service(String service_name, String thread_name)

{

this.serviceName = service_name;

this.threadName = thread_name;

}

public void dependesOn(Service s) throws InterruptedException

{

System.out.println("My name is " + serviceName +" and i'm depending on " + s.serviceName);

dependentServicesOn.add(s);

}

public Service startService() throws InterruptedException

{

for(Service dependency : dependentServicesOn) {

if(!dependency.isStarted()) {

dependency.startService();

}

}

startSignal = new CountDownLatch(1);

// new Thread(new CreateThread(this,startSignal)).start();

startSignal.countDown();

return null;

}

public boolean isStarted()

{

return onOrOff;

}

public void setStarted()

{

onOrOff = true;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值