小编uah*_*kan的帖子

ScheduledThreadPoolExecutor迟到了

我有这个简单的代码片段:

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(10);

    Runnable r = new Runnable() {

        @Override
        public void run() {
            System.err.println(Calendar.getInstance().getTime());
        }
    }; 

    exec.scheduleAtFixedRate(r,0, 500, TimeUnit.MILLISECONDS);
}
Run Code Online (Sandbox Code Playgroud)

在一台计算机上,此代码按预期运行.控制台输出:

  • Tue Jul 03 10:32:34 EEST 2012
  • Tue Jul 03 10:32:34 EEST 2012
  • Tue Jul 03 10:32:35 EEST 2012
  • Tue Jul 03 10:32:35 EEST 2012
  • Tue Jul 03 10:32:36 EEST 2012
  • Tue Jul 03 10:32:36 EEST 2012 ...

但是在另一台机器上,控制台上的时间戳显示ScheduledThreadPoolExecutor迟到了.迟到我的意思是几秒钟:)

  • Tue Jul …

java scheduling

7
推荐指数
1
解决办法
371
查看次数

C++ 记录每个函数和参数值

我想在我的 C++ 应用程序中记录每个函数调用和参数值。下面是我想出的代码:

头文件:

#pragma once
class Deneme1
{
public:
    Deneme1(void);
    ~Deneme1(void);
    int Deneme1::foo1(double &a);
    int Deneme1::foo2(double &a);

    struct Logger
    {};

    template <typename T>
    struct LogReturner
    {
        T* ptrReturnValue;
        Logger& theLog;
        LogReturner(Logger& log, T* retVal) : theLog(log), ptrReturnValue(retVal) { }
        ~LogReturner() { /**/ }
    };

    #define EXPAND_ARGS(...) __VA_ARGS__;
    #define LOG_FUNCTION_CALL(x, logger, varName, ar) x varName; LogReturner<x> LR(logger, &varName); FuncCall(__FUNCTION__, EXPAND_ARGS ar);

    Logger globLogger;
};
Run Code Online (Sandbox Code Playgroud)

cp文件:

#include "Deneme1.h"
#include "FuncCall.h"

Deneme1::Deneme1(void)
{
}

Deneme1::~Deneme1(void)
{
}

int Deneme1::foo1(double &a)
{
    LOG_FUNCTION_CALL(int, …
Run Code Online (Sandbox Code Playgroud)

c++ logging

5
推荐指数
1
解决办法
2743
查看次数

调整大小时,`std::vector` 会抛出“错误分配”异常

我在 C++ dll 中有以下代码,通过 JNI 调用它:

std::vector<double> myVector;
myVector.resize(10000000, 0);
Run Code Online (Sandbox Code Playgroud)

我收到“错误分配”异常,即使向量的最大大小据称大于 10000000。

我应该使用什么工具来跟踪内存分配,以便找到任何内存泄漏?

如果确实没有内存泄漏,我如何减少向量的占用空间以确保我有足够的空间?

c++ java-native-interface stdvector bad-alloc

5
推荐指数
1
解决办法
8044
查看次数

套接字的DataInputStream的“可用”

我在客户端上有以下代码:

DataInputStream dis = new DataInputStream(socketChannel.socket().getInputStream());
while(dis.available()){
     SomeOtherClass.method(dis);
}
Run Code Online (Sandbox Code Playgroud)

但是available()不断返回0,尽管流中有可读数据。因此,在要读取的实际数据完成之后,空数据将传递到另一个要读取的类,这将导致损坏。

经过一番搜索;我发现available()在与套接字一起使用时这是不可靠的,我应该从流中读取前几个字节以实际查看是否有数据可解析。

但就我而言 我必须将DataInputStream我从套接字获得的引用传递给我无法更改的其他类。

是否可以从中读取一些字节DataInputStream而不破坏它,或者有其他建议?

java sockets datainputstream

4
推荐指数
1
解决办法
9273
查看次数