小编M. *_*its的帖子

避免多线程进程中的死锁

为了避免死锁,有人应该遵循哪些最佳做法/习惯用法?

multithreading deadlock idioms

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

VS2005 c#多线程:如何启动10个线程

启动10个线程的最佳方法是什么,如for循环中的流程密集型方法.代码示例非常有用.

for (int i = 0; i<=10; i++) //10 threads are intended.
{
    LongRunningMethod();
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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

复制保护静态库

我将很快发布一个付费的静态库,我想知道是否可以构建任何形式的复制保护,以防止开发人员复制库.

理想情况下,我想防止库被链接到可执行文件中,如果(并且只有!)库被非法复制到开发人员的机器上.这可能吗?

或者,如果与图书馆的非法副本相关的申请根本不起作用,则可以接受; 但是,非常重要的是,这不会给这些应用程序的用户带来负担(例如输入许可证密钥,使用加密狗,甚至需要Internet连接).

该库是用C++编写的,目标是许多平台,包括Windows和Mac.

我有什么选择吗?

c++ linker copy-protection

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

具有多个图层的JFrame

我有一个有两层的窗口:静态背景和包含移动对象的前景.我的想法是只绘制一次背景(因为它不会改变),所以我将更改面板透明并将其添加到静态背景之上.这是以下代码:

public static void main(String[] args) {
    JPanel changingPanel = new JPanel() {

        @Override
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.setColor(Color.RED);
            g.fillRect(100, 100, 100, 100);
        }
    };
    changingPanel.setOpaque(false);

    JPanel staticPanel = new JPanel();
    staticPanel.setBackground(Color.BLUE);
    staticPanel.setLayout(new BorderLayout());
    staticPanel.add(changingPanel);

    JFrame frame = new JFrame();
    frame.add(staticPanel);
    frame.setSize(800, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

这段代码给了我想要的正确图像,但每次重新绘制时changingPanel,staticPanel都会重新绘制(这显然违背了仅绘制一次静态面板的整个想法).有人能告诉我什么是错的吗?

仅供参考我使用javax.swing.Timer每秒24次重新计算和重新绘制更改面板.

java performance swing jcomponent javax.swing.timer

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

是否可以从PHP中的数组值自动生成Getter/Setter?

所以我有几个阵列

$array_1 = Array('one','two','three');
$array_2 = Array('red','blue','green');
Run Code Online (Sandbox Code Playgroud)

是否有动态方法为具有单值条目的数组创建Setters和Getters?

所以课程类似于:

class xFromArray() {

}
Run Code Online (Sandbox Code Playgroud)

所以如果我传递$ array_1,它会产生如下所示:

private $one;

setOne($x) {
   $one = $x;
}

getOne() {
   return $one;
}
Run Code Online (Sandbox Code Playgroud)

如果我传递$ array_2,它会生成如下内容:

private $red;

setRed($x) {
   $red = $x;
}

getRed() {
   return $red;
}
Run Code Online (Sandbox Code Playgroud)

所以我会这样称呼它?(我最好的猜测,但似乎不会这样)

$xFromArray = new xFromArray;
foreach($array_1 as $key=>$data) {
   $xFromArray->create_function(set.ucfirst($data)($data));
   echo $xFromArray->create_function(get.ucfirst($data));
}
Run Code Online (Sandbox Code Playgroud)

php arrays getter-setter

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

排序整数列表中的近似搜索算法

考虑一个整数数组(假设是排序的); 我想以最快的方式找到最接近给定整数的整数的数组索引.并且在存在多种可能性的情况下,算法应该识别所有.

示例:考虑T =(3,5,24,65,67,87,129,147,166),如果给定的整数为144,则代码​​应将147标识为最接近的整数,并给出数组索引7对应于该条目.对于66的情况,算法应识别65和67.

是否有O(1)或至少O(log N)算法来执行此操作?直接搜索算法(二进制搜索,树搜索,散列等)实现将不起作用,因为那些将需要完美匹配.有没有办法可以修改这些来处理近似搜索?

我正在开发一个C代码.

谢谢

search approximate

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

Makefile更新了库依赖项

我有一个大的makefile,它构建了几个库,安装它们,然后继续构建与这些已安装的库链接的对象.我的麻烦是我想使用"-lfoo -lbar"作为g ++标志来链接两个已安装的库,但依赖关系搞砸了.如果我更改库foo所依赖的标题"42.h",那么make当然会重建并安装它,但它似乎没有注意到我的对象"marvin"使用了"-lfoo"而marvin是左链接的对旧版本...... :(

到目前为止,我一直在做:

$(myObject): $(localSrc) /explicit/path/to/lib/libfoo.a
            $(CXX) $(CPPFLAGS) $(INCFLAGS) -o $@ $^ $(LINKFLAGS) $(LINKLIBS)
Run Code Online (Sandbox Code Playgroud)

但我现在已经不再是一个可行的选择了.我需要简单地将库"-lfoo -lbar"添加到LINKFLAGS变量并让链接器解决问题?

与此同时,我已经使用了一些命令来明确地吹走有问题的目标文件,然后调用make,但这很愚蠢.我很紧张,但如果有必要,我可以在周五晚上或周六早上发布一个小例子.

因此,我觉得我回到了一些糟糕的Windows版本地狱.有什么我可以做的事情让链接器注意到对象构建的库的版本,并重新链接它,如果这些库更改?

更新:所以到目前为止我还没有机会崩溃这些建议.我正在做的缺点是使用静态库.所以我不能用ldd.所以我重写了我的Makefile,找到了解决这个问题的方法.如果我有时间,我会发布我所做的.

c++ linker dependencies makefile

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

R:{reshape} :( melt.data.frame)如何复制列?

我在MCMC算法中有一系列迭代.行表示来自分布的绘制.列表示分布中的参数(变量).为便于说明:假设两个变量,五次迭代.所以我有:

> draws <- data.frame( iteration = c(1:5),
                       alpha     = rnorm(5,0,1),
                       beta      = rnorm(5,0,1))

  iteration      alpha       beta
1         1 -0.3157940  0.2122465
2         2  1.0087298 -0.2346733
3         3  1.0366165  0.3472915
4         4 -2.4256564  0.9863279
5         5 -0.6089072 -1.1213000
Run Code Online (Sandbox Code Playgroud)

当我融化数据集时,我得到:

> melt(draws)
Using  as id variables
    variable      value
1  iteration  1.0000000
2  iteration  2.0000000
3  iteration  3.0000000
4  iteration  4.0000000
5  iteration  5.0000000
6      alpha -0.1042616
7      alpha  1.0707001
8      alpha  0.2166865
9      alpha  0.0771617
10     alpha -0.8893614
11      beta -0.4846693
12 …
Run Code Online (Sandbox Code Playgroud)

r reshape melt

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

什么更贵?作业或声明?

只是一个简单的问题,什么会更昂贵的Java?

   double test = 5;
   double test1 = 5;
Run Code Online (Sandbox Code Playgroud)

要么

   double test = 5;
   double test1 = test;
Run Code Online (Sandbox Code Playgroud)

java performance

0
推荐指数
1
解决办法
220
查看次数

在Perl中,如何将生成的文件标记为可执行文件?

在我的perl脚本中,我创建了一个shell脚本(用于对长模拟的结果进行后处理).我想将此文件标记为可执行文件.

$fileName = 'postProcess.tcsh';
Run Code Online (Sandbox Code Playgroud)

显然,我可以做到以下几点:

system("chmod +x $fileName");
Run Code Online (Sandbox Code Playgroud)

但我很好奇是否有一个避免系统调用的解决方案.换句话说,文件模块中是否有方法?你说什么僧人?

perl executable file

0
推荐指数
1
解决办法
131
查看次数

GWT多模块应用程序

我是GWT的初学者,正在考虑开发管理软件并将其部署在AppEngine上.

在我看来,有一个"标签式"用户界面.

Tab1 =销售额; Tab2 =发票; Tab3 =股票......等等.

我刚刚完成了Stockwatcher教程,它非常酷,但现在我想知道如何组织我的代码.

我的意思是,为每个标签制作一个gwt模块是一个好主意吗?例如,我只想在选择该选项卡时加载"发票"选项卡的界面.即使我对multimodule的想法是错误的,你能告诉我如何避免在"Stockwatcher"课程中使用我的所有代码.我读过复合材料,但我无法理解.

希望你理解我的疑虑.谢谢你们!

gwt google-app-engine project-organization multi-module

0
推荐指数
1
解决办法
318
查看次数