小编pan*_*ajt的帖子

设计更好的API?

  1. 设计API需要遵循哪些最佳实践和模式?
  2. 如何实现隐藏最佳方式的实现(C++/Java)?
  3. 设计通用的API?
  4. 任何参考书籍/链接,向初学者提供简洁的例子?

c++ java oop design-patterns

6
推荐指数
3
解决办法
5291
查看次数

什么是java中的条件变量?

Q1.什么是Java中的condVar?如果我看到下面的代码,条件变量是否必须在' mutex.acquire() '和' mutex.release() '块中?

public void put(Object x) throws InterruptedException {
   mutex.acquire();
   try {
      while (count == array.length)
      notFull.await();
      array[putPtr] = x;
      putPtr = (putPtr + 1) % array.length;
      ++count;
      notEmpty.signal();
  }
  finally {
     mutex.release();
  }
}
Run Code Online (Sandbox Code Playgroud)

我有三个线程myThreadA,myThreadB,myThreadC运行,调用相同的函数commonActivity(),触发函数myWorkReport(),例如

public void myWorkReport(){
    mutexMyWork.acquire();
    try{
         while(runMyWork){
             doWork();
             conditionMyWork.timedwait(sleepMyWork);
         }
    }
    finally{
       mutexMyWork.release()
    }    
}

public void commonActivity(){
    try{
        conditionMyWork.signal(); 
    }finally{
        //cleanup
    }   
}

public void myThreadA(){
    mutexA.acquire();
    try{
        while(runningA){    //runningA …
Run Code Online (Sandbox Code Playgroud)

java multithreading

6
推荐指数
1
解决办法
3万
查看次数

在C++中返回引用

考虑以下代码我要返回的地方double&string&.它在双精度的情况下工作正常,但在字符串的情况下则不行.为什么行为会有所不同?

这两种情况下,编译器甚至不会抛出,Warning: returning address of local variable or temporary因为我正在返回引用.

#include <iostream>
#include <string>
using namespace std;


double &getDouble(){
    double h = 46.5;
    double &refD = h;
    return refD;
}

string &getString(){
    string str = "Devil Jin";
    string &refStr = str;
    return refStr;
}

int main(){
    double d = getDouble();
    cout << "Double = " << d << endl;

    string str = getString();
    cout << "String = " << str.c_str() << endl;

    return …
Run Code Online (Sandbox Code Playgroud)

c++ reference

6
推荐指数
2
解决办法
1606
查看次数

如何调试数据库查询以获得性能

我是数据库和SQL查询的新手.

Q1.在数据库查询中通常会遇到哪些常见问题?可能是非常大的查询,性能问题,超时和连接错误,导入导出和恢复错误

Q2.在调试SQL查询性能时应该注意哪些方法和工具?

如果你能分享一些面临的问题以及你是如何解决这个问题的话会很棒.

database performance

5
推荐指数
2
解决办法
7168
查看次数

如何调试 C++ 中挂起(死锁)的多线程应用程序?

在 Java 中调试挂起的应用程序很容易。您可以获取应用程序的内存转储并使用 eclipse jvm dump 分析器来查看线程的状态以及每个线程被阻塞的位置?

C++ 中存在这样的东西吗?

c++ debugging multithreading

4
推荐指数
2
解决办法
2万
查看次数

我应该使用什么模式来使用SAX解析器?

<xml>
<Office prop1="prop1" prop2="prop2">
    <Version major="1" minor="0"/>
    <Label>MyObjectA</Label>
    <Active>No</Active>
</Office>
<Vehicle prop="prop">
    <Wheels>4</Wheels>
    <Brand>Honda</Brand>
    <Bought>No</Bought>
</Vehicle>
</xml>
Run Code Online (Sandbox Code Playgroud)

我的XML采用这种格式.我正在使用SAX解析器来解析此文件,因为xml文件的大小可能很大.

我应该遵循什么模式来解析文件.

通常我一直在遵循这种方法:

//PseudoCode
if(start){
    if(type Office)
    {
       create an instance of type Office and populate the attributes of Office in the Office class using a call back
    }
    if(type Vehicle)
    {
       create an instance of type Vehicle and populate the attributes of Vehicle in the Vehicle class using a call back
     }
}

if(end){
     // do cleaning up
}
Run Code Online (Sandbox Code Playgroud)

这种方法通常使我的解析函数包含起始和结束标记.还有其他更好的方法可以遵循.

java oop design-patterns

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

C运行时stackoverflow

#include <stdio.h>

int doHello(){
    doHello();
}

int main(){
    doHello();
    printf("\nLeaving Main");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当您运行此程序时,程序退出而不在屏幕上打印"Leaving Main"消息.这是Stack Overflow的情况,因为程序正在终止,但我在命令窗口中看不到任何错误消息.(跑在Windows/Cygwin /)

Q1.我没有在doHello函数中声明任何局部变量,但仍在使用堆栈.这是因为

  • 返回值
  • 关于函数调用存储的信息?

澄清

Q2.如何在程序中调试此类案例?我不是要求调试我上面提到的无限循环.

例如:

#define SIZE 512*1024
void doOVerflow(){
   char str[SIZE];
   doHello();
}

void doHello(){
   char strHello[256];  // stack gets filled up at this point
   doNothing();         // program terminates and function doNothing does not get called
}
Run Code Online (Sandbox Code Playgroud)

编辑:

Q3.运行时堆栈中存储了哪些信息?

c stack-overflow

3
推荐指数
2
解决办法
665
查看次数

在C++中使用回调是否会增加耦合?

Q1.为什么使用回调函数?

Q2.回调是邪恶的吗?对于那些知道,对他人来说是噩梦的人来说,这很有趣.

Q3.回调的替代方案?

c++ oop callback

3
推荐指数
1
解决办法
3047
查看次数

Java性能的差异从1.4到1.6

通过jdk1.6编译代码与jdk1.5或jdk1.4相比,我发现Sun Java性能有很大差异(超过4倍)

进行了哪些更改和优化?有什么值得从这些变化带回家,这将有助于提高我们的应用程序性能.

感谢回复

java performance

2
推荐指数
1
解决办法
1885
查看次数

何时使用扩展和何时使用接口?

我们可以扩展一个类,但是我们不能实现一个类.我们可以实现一个接口,但不能扩展接口.

在什么情况下我们应该使用扩展?

java design-patterns

2
推荐指数
1
解决办法
6218
查看次数