【发布时间】:2013-01-23 16:56:16
【问题描述】:
我需要在 Web 应用程序中使用线程安全的statsd 客户端来监视用户线程的统计信息。请提出一个既线程安全又不影响性能的解决方案。
【问题讨论】:
标签: java multithreading thread-safety graphite statsd
我需要在 Web 应用程序中使用线程安全的statsd 客户端来监视用户线程的统计信息。请提出一个既线程安全又不影响性能的解决方案。
【问题讨论】:
标签: java multithreading thread-safety graphite statsd
examples directory 中的 Java 客户端 StatsdClient.java 怎么样?他们在 Java 客户端实现中使用同步。类注释中有一个用法示例:
StatsdClient client = new StatsdClient("statsd.example.com", 8125);
// increment by 1
client.increment("foo.bar.baz");
increment(String) 代表 increment(String, int) 代表increment(String, int, double) 生成要调用的字符串send(double, String...) 终于调用了sendTo(String) 使用修饰符 synchronized 这也适用于此类中的其他方法。
诚然,将所有相关方法声明为 synchronized 并不构成线程安全类。但我相信 Etsy 在这里考虑到了这一点并做到了这一点。
【讨论】: