小编axe*_*l22的帖子

如何在ScalaTest中显示自定义失败消息?

有谁知道如何在ScalaTest中显示自定义失败消息?

例如:

NumberOfElements() should equal (5)
Run Code Online (Sandbox Code Playgroud)

失败时显示以下消息:

10不等于5

但我想要更多描述性的消息,如:

NumberOfElements应为5.

scala matcher scalatest

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

scala parallel collections of parallelism

在LINQ的scala并行集合中是否有任何等价物来withDegreeOfParallelism设置将运行查询的线程数?我想并行运行一个需要运行一定数量线程的操作.

scala scala-collections

39
推荐指数
2
解决办法
7909
查看次数

Java比较和交换语义和性能

Java中比较和交换的语义是什么?也就是说,AtomicIntegerjust 的compare和swap方法是否保证在不同线程之间对原子整数实例的特定内存位置进行有序访问,或者它是否保证对内存中所有位置的有序访问,即它就像是一个volatile一样(记忆围栏).

来自文档:

  • weakCompareAndSet原子地读取并有条件地写入变量但不创建任何发生前的排序,因此不提供关于除了目标之外的任何变量的先前或后续读取和写入的保证weakCompareAndSet.
  • compareAndSet以及所有其他读取和更新操作,例如getAndIncrement读取和写入volatile变量的内存效应.

从API文档中compareAndSet可以看出,它就好像是一个易变的变量.但是,weakCompareAndSet应该只是改变其特定的内存位置.因此,如果该存储器位置是单个处理器的高速缓存所独有的,weakCompareAndSet则应该比常规处理器快得多compareAndSet.

我问这个是因为我通过运行threadnum不同的线程来对以下方法进行基准测试,threadnum从1到8 不等,并且totalwork=1e9(代码是用Scala编写的,这是一种静态编译的JVM语言,但它的含义和字节码转换都是同构的在这种情况下Java的代码 - 这个简短的代码片段应该是清楚的):

val atomic_cnt = new AtomicInteger(0)
val atomic_tlocal_cnt = new java.lang.ThreadLocal[AtomicInteger] {
  override def initialValue = new AtomicInteger(0)
}

def loop_atomic_tlocal_cas = {
  var i = 0
  val until = totalwork / threadnum
  val acnt = atomic_tlocal_cnt.get
  while (i < until) {
    i += 1
    acnt.compareAndSet(i - …
Run Code Online (Sandbox Code Playgroud)

java concurrency performance jvm compare-and-swap

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

为什么读取volatile并写入字段成员在Java中不可扩展?

观察以下用Java编写的程序(完整的runnable版本如下,但程序的重要部分在下面的代码片段中):

import java.util.ArrayList;



/** A not easy to explain benchmark.
 */
class MultiVolatileJavaExperiment {

    public static void main(String[] args) {
        (new MultiVolatileJavaExperiment()).mainMethod(args);
    }

    int size = Integer.parseInt(System.getProperty("size"));
    int par = Integer.parseInt(System.getProperty("par"));

    public void mainMethod(String[] args) {
        int times = 0;
        if (args.length == 0) times = 1;
        else times = Integer.parseInt(args[0]);
        ArrayList < Long > measurements = new ArrayList < Long > ();

        for (int i = 0; i < times; i++) {
            long start = System.currentTimeMillis();
            run();
            long end …
Run Code Online (Sandbox Code Playgroud)

java concurrency assembly jvm

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

将git diff设置为默认值

我之前改变了我的git diff工具git config --global diff.external <diff-tool-name>.我决定不喜欢那个工具,想要换回来.

我试着干涉并做了类似的事情:git config --global diff.external git-diff.现在调用git diff以查看未分级的更改产生:

fatal: ambiguous argument '48e66b706d21398f28240810e7fc0d44d8f92d99': unknown revision or path not in the working tr
Use '--' to separate paths from revisions
external diff died, stopping at somefile.ext.
Run Code Online (Sandbox Code Playgroud)

如何设置我的git diff命令以使用git附带的默认命令行git diff.就像是:

git config --global diff.

然后什么?

git diff

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

AtomicReferenceFieldUpdater - 方法set,get,compareAndSet语义

来自Java AtomicReferenceFieldUpdater文档:

请注意,compareAndSet此类中方法的保证比其他原子类弱.因为此类不能确保该领域的所有应用都适合于原子访问目的,它可以保证原子性和可变语义只相对于其他调用compareAndSetset.

这意味着我无法进行正常的易失性写入compareAndSet,但必须使用set.它没有提到任何关于get.

这是否意味着我仍然可以读取具有相同原子性保证的volatile字段 - 所有写入之前的所有写入set或者compareAndSet对读取volatile字段的所有人都可见?

还是我使用getAtomicReferenceFieldUpdater,而不是在球场上挥发读?

如果您有参考,请发布参考.

谢谢.

编辑:

Java Concurrency in Practice中,他们唯一说的是:

updater类的原子性保证比常规原子类弱,因为您无法保证不会直接修改基础字段 - compareAndSet和算法方法仅保证原子性与使用原子字段更新器方法的其他线程相关.

同样,没有提到其他线程应该如何读取这些volatile字段.

另外,我是否正确地假设"直接修改"是一个常规的易失写?

java concurrency volatile atomicreference jsr166

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

在哪里可以找到下载的sbt库?

sbt把下载的jar放在哪里?我试图让sbt下载所有依赖项并将它们放在lib /目录下,这样我就可以将它们与ScalaIDE一起使用,但是在我sbt compile成功运行之后我不知道在哪里可以找到这些下载的.jars

java scala sbt

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

代数,数学的Java/Scala库

你能告诉我一些灵活,强大,快速的库,它可以涵盖SciPy(性能和功能).我发现SciPy很有表现力 - 但我想在Scala中尝试一些东西.

我读了一些关于Scala的内容 - 但不像SciPy那样精彩.任何替代品?也许Java库?

java math scala algebra linear-algebra

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

在JSP页面中使用request.setAttribute

是否可以request.setAttribute在JSP页面上使用,然后在HTML Submit中获取相同的请求属性Servlet

java request-object setattribute java-ee

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

Java虚拟机上的数组分配和访问以及内存争用

观察线程子类的以下定义(为方便起见,整个可运行的Java源文件包含在问题的末尾):

final class Worker extends Thread {
    Foo[] array = new Foo[1024];
    int sz;

    public Worker(int _sz) {
        sz = _sz;
    }

    public void run() {
        //Foo[] arr = new Foo[1024];
        Foo[] arr = array;
        loop(arr);
    }

    public void loop(Foo[] arr) {
        int i = 0;
        int pos = 512;
        Foo v = new Foo();
        while (i < sz) {
            if (i % 2 == 0) {
                arr[pos] = v;
                pos += 1;
            } else {
                pos -= 1;
                v …
Run Code Online (Sandbox Code Playgroud)

java memory arrays concurrency memory-management

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