问题列表 - 第15391页

不是线程安全的对象发布

在实践中阅读Java并发,第3.5节:提出索赔

public Holder holder;
public void initialize() {
     holder = new Holder(42);
}
Run Code Online (Sandbox Code Playgroud)

除了创建2个Holder实例的明显线程安全危险之外,本书声称可能会出现一个可能的发布问题,对于Holder类来说更是如此

public Holder {
    int n;
    public Holder(int n) { this.n = n };
    public void assertSanity() {
        if(n != n)
             throw new AssertionError("This statement is false.");
    }
}
Run Code Online (Sandbox Code Playgroud)

可以抛出AssertionError!

这怎么可能 ?我能想到的唯一可以允许这种荒谬的行为是,如果Holder构造函数不会被阻塞,那么当构造函数代码仍在不同的线程中运行时,将为该实例创建一个引用.这可能吗 ?

java concurrency thread-safety

14
推荐指数
2
解决办法
2492
查看次数

替代java中的if语句

我很想看到常规if语句的任何替代方法,例如

if(x)
     do a;
if(y)
     do b;
if(z)
    do c;
Run Code Online (Sandbox Code Playgroud)

所以你看到所有if语句是分开的,没有其他条件.请注意,XYZ是完全独立的条件,因此开关不适合.

java if-statement

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

自动化C++类的pimpl - 有一个简单的方法吗?

Pimpl是许多C++代码中的样板来源.它们似乎是宏,模板和一些外部工具帮助可以解决的组合,但我不确定最简单的方法是什么.我已经看到模板有助于完成一些提升但不是很多 - 你仍然需要为你试图包装的类的每个方法编写转发函数.有没有更简单的方法?

我正在想象一个用作制作过程一部分的工具.你希望你的公共标题是pimpl'd类,所以你提供一些输入文件,比如pimpl.in,列出你要包装的类(实现un-pimpl'd),然后检查该文件,生成pimpl类,并且在'make install'期间只安装它们的标题(不是原始类的标题).问题是如果没有完整的C++解析器,我没有看到任何方法可以做到这一点,甚至编译器供应商都无法做到这一点.也许这些类可以用某种方式编写,这使得外部工具的工作变得更容易,但我确信我最终会错过各种角落案例(例如模板化类和/或模板化成员函数).

有任何想法吗?有没有其他人为此问题提供解决方案?

c++ macros templates build-process pimpl-idiom

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

捆绑框架与XCode中的应用程序

我是XCode新手.我想按照这些说明操作.很显然,我错过了一些东西,因为虽然我可以看到我想要的框架被复制到应用程序包中,但我无法引用它.

当我从我以外的机器启动应用程序时(或者如果我从/ Library/Frameworks /中删除OpenCV),我收到以下错误:

Dyld错误消息:未加载库:/Users/david/Library/Frameworks/OpenCV.framework/Versions/A/OpenCV参考自:/Users/g/Demo/Slates/ClipSplitter/build/Release/ClipSplitter.app/Contents/ MacOS/ClipSplitter原因:找不到图像

如果这有任何区别,我的系统上没有用户"david".这也是从互联网上下载的预建OpenCV.(这是评论中要求的项目截图.)

xcode frameworks

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

关于Django中的IP 0.0.0.0

我们有一台服务器,我们正在运行一个Django支持的站点.由于我们想测试网站,我们正在使用Django的内置开发服务器(即runserver).但是我对以下命令的ip感到好奇:

python manage.py runserver 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

它导致我们可以使用服务器的远程IP访问的运行站点.
但是当使用时127.0.0.1:

python manage.py runserver 127.0.0.1:80
Run Code Online (Sandbox Code Playgroud)

没有人可以从另一台PC上使用服务器的ip访问该站点.

所以为什么?0.0.0.0究竟意味着什么(Google称这是默认路线)?为什么无法127.0.0.1:80远程访问?

django ip

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

CodeGolf:兄弟

我刚刚参加了拉丁美洲总决赛的2009 ACM ICPC Programming Conest.这些问题适用于巴西,玻利维亚,智利等.

我和我的团队只能在十一个问题中完成两个问题(我认为第一次尝试不错).

这是我们可以完成的.我很想看到代码的任何变化.完整的问题:ps:这些问题也可以在ICPC官方网站上找到.


在ACM的土地上,统治着一个痴迷于秩序的希腊国王.王国有一个长方形,国王将领土划分为一个小矩形县的网格.在临死前,国王将他们的县分配给他们.

国王不知道他的儿子之间的对抗:第一个继承人讨厌第二个而不是其他人,第二个人讨厌第三个而不是其他人,等等......最后,最后一个继承人讨厌第一个继承人,但不是其他继承人.

国王一旦死亡,国王的儿子中的奇怪的竞争就引发了王国的普遍战争.攻击只发生在成对的相邻县之间(相邻的县是那些共享一个垂直或水平边界的县).当X恨Y时,一个县X袭击了邻近的Y县.被攻击的郡总是被征服.所有同时进行的攻击和一系列同时攻击都被称为战斗.经过一定数量的战斗后,幸存的儿子们休战,再也没有战斗过.

例如,如果国王有三个儿子,名为0,1和2,下图显示了在给定的初始土地分配的第一次战斗中发生的事情:

替代文字


INPUT

输入包含几个测试用例.一个测试用例的第一行包含四个整数,N,R,C和K.

  1. N - 继承人数(2 <= N <= 100)
  2. R和C - 土地的尺寸.(2 <= R,C <= 100)
  3. K - 即将发生的战斗次数.(1 <= K <= 100)

继承人由从零开始的连续整数识别.接下来的R行中的每一行都包含由单个空格分隔的C个整数HeirIdentificationNumber(说明继承人拥有这片土地).这是为了布置初始土地.

最后一个测试用例是由单个空格分隔的四个零分隔的行.(退出程序可以这么说)


产量

对于每个测试用例,程序必须打印R行,每行有C个整数,用与输入相同格式的单个空格分隔,表示所有战斗后的土地分布.


Sample Input:                          Sample Output:
3 4 4 3                                2 2 2 0
0 1 2 0                                2 1 0 1 
1 0 2 0                                2 2 2 0
0 1 2 0                                0 2 0 …
Run Code Online (Sandbox Code Playgroud)

algorithm console-application

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

如果多个线程可以访问某个字段,那么它应该标记为volatile吗?

阅读几个线程(常见的并发问题,volatile关键字,内存模型)我对Java中的并发问题感到困惑.

我有很多字段可以被多个线程访问.我是否应该通过它们并将它们标记为易变?

在构建一个类时,我不知道多个线程是否会访问它,所以让任何字段都不易变化是不安全的,所以根据我的理解,你很少会使用它.它是否正确?

对我来说,这是特定于版本1.5 JVM及更高版本,但不仅限于回答我的具体设置.

java memory atomic volatile

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

为什么我不能设置cookie和重定向?

我在设置cookie并进行302重定向时遇到问题
在Chrome中没有设置cookie(我没有测试过safari),在其他浏览器中我遇到了同样的问题,直到我添加Path=/到cookie中它现在可以正常工作.

这是标题的外观; 状态是302 Found

Content-Type    text/html; charset=iso-8859-1
Expires Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie  alasca-flash=error-Message<Required<error-Name<Required<error-Sex<Required<error-Age<Required<;Path=/
Location    /messages/sdf
Content-Length  0
Server  Jetty(6.1.x)
Run Code Online (Sandbox Code Playgroud)

关于为什么没有设置cookie的任何想法?或任何解决方法?

cookies redirect http

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

C++类扩展

有没有办法向类添加新方法,而不修改原始类定义(即包含类和相应的.h文件的编译.lib),如C#的类扩展方法?

c++ extension-methods class

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

Android:应用程序在打开后立即关闭

我正在修补Netbeans上的android并做了一个简单的数学应用程序.在某个地方,应用程序突然强制关闭它一旦打开(在模拟器上)...我试着评论承载主要活动的类中的所有代码,但无济于事.由于它没有给我一个特定的错误信息,我觉得有点丢失.

出现这种情况的原因是什么?

这是请求的布局文件:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView  android:id="@+id/result"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=""/>
        <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/number" />
        <EditText android:id="@+id/n"
          android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
                        android:numeric="decimal"/>
                <Button android:id="@+id/calc"
                  android:text="@string/calculate"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

建议我检查logcat,这是错误列表

E/AndroidRuntime(  881): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(  881): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.me.mathdroid/org.me.mathdroid.MainActivity}: java.lang.NullPointerException
E/AndroidRuntime(  881):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2324)
E/AndroidRuntime(  881):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
E/AndroidRuntime(  881):        at android.app.ActivityThread.access$2100(ActivityThread.java:116)
E/AndroidRuntime(  881):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
E/AndroidRuntime(  881):        at android.os.Handler.dispatchMessage(Handler.java:99) …
Run Code Online (Sandbox Code Playgroud)

android

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