小编dab*_*aba的帖子

CyclicBarrier无法按预期工作

我试图模拟一场triatlon比赛,CyclicBarrier但它不能按预期工作,我不知道为什么.

比赛的每个部分都必须等到所有选手都完成前一个比赛,但似乎它永远等待.

这是第一阶段的代码:

class Runner implements Runnable
{
    private CyclicBarrier bar = null;
    private static int runners;
    private static double[] time;
    private int number;
    public static String name;

    public Runner(int runners, String name)
    {
        time = new double[runners];
        for (int i=0; i<runners; i++)
            time[i] = 0;
        this.name= name;
    }

    public Runner(CyclicBarrier bar, int number)
    {   
        this.bar = bar;
        this.number = number;
    }

    public void run()
    {
        try { int i = bar.await(); } 
                   catch(InterruptedException e) {} 
                       catch (BrokenBarrierException …
Run Code Online (Sandbox Code Playgroud)

java concurrency cyclicbarrier

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

PHP preg_match:任何字母但没有数字(和符号)

我试图为我的表单中的字段设置验证规则,检查输入只包含字母.

起初我尝试创建一个函数,如果字符串中没有数字,则返回true,因为我使用了preg_match:

function my_format($str)
{
   return preg_match('/^([^0-9])$', $str);
}
Run Code Online (Sandbox Code Playgroud)

无论我多少次看到php手册,似乎我都无法理解如何创建我想要的模式.我做的是什么问题?

但我想扩展一个问题:我希望输入文本包含任何字母,但不包含数字或符号,如问号,感叹号以及所有您能想象的内容.但是我想要的字母不仅仅是az,我想要各种口音的字母,如西班牙语,葡萄牙语,瑞典语,波兰语,塞尔维亚语,岛屿语...

我想这不是一件容易的事,而且很难或不可能用preg_match做.有没有图书馆可以满足我的确切需求?

php regex

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

math.h pow vs手动电源性能

我只是想知道库的pow功能是如何math.h工作的,它是实现最简单的顺序算法还是使用其他的?

我只知道重复的平方算法,它报告O(log n),也许这是pow函数实现的算法?

所以我只是使用顺序算法vs进行了一些测试pow,发现第一个版本几乎比第二个快3倍.调用函数真的会惩罚这个测试的性能吗?为什么?

任何其他评论解释正在发生的事情或如何pow实施是值得欢迎的.

编辑:我错了,比顺序算法pow 3倍.

c++ algorithm performance time math.h

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

无法安装rails 3.2.9:无法构建gem native扩展

刚刚清理了 rvm和ruby并重新安装了它.我正在尝试安装rails但是我收到此错误:

gem install rails -v 3.2.9

Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.8.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
Run Code Online (Sandbox Code Playgroud)

如果我bundle install用我的Gemfile那个rails 3.2.9 和更多的宝石运行我得到这个错误:

An error occurred while installing json (1.8.1), and Bundler cannot continue.
Make sure that …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3

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

尝试使用lambda函数作为condition_variable等待方法的谓词

我试图使用c ++ 11并发制作生产者 - 消费者方法.类的wait方法condition_variable有一个谓词作为第二个参数,所以我想到使用lambda函数:

struct LimitedBuffer {
    int* buffer, size, front, back, count;
    std::mutex lock;
    std::condition_variable not_full;
    std::condition_variable not_empty;

    LimitedBuffer(int size) : size(size), front(0), back(0), count(0) {
        buffer = new int[size];
    }   

    ~LimitedBuffer() {
        delete[] buffer;
    }

    void add(int data) {
        std::unique_lock<std::mutex> l(lock);

        not_full.wait(l, [&count, &size]() {
            return count != size;
        });

        buffer[back] = data;
        back = (back+1)%size;
        ++count;

        not_empty.notify_one();
    }

    int extract() {
        std::unique_lock<std::mutex> l(lock);

        not_empty.wait(l, [&count]() {
            return count != 0;
        });

        int …
Run Code Online (Sandbox Code Playgroud)

concurrency lambda synchronization condition-variable c++11

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

使用Ruby获取页面标题

我试图获得title标签内部的内容,但我无法做到.我正在关注stackoverflow的一些应该工作的答案,但对我来说他们没有.

这就是我在做的事情:

require "open-uri"
require "uri"

def browse startpage, depth, block
    if depth > 0
        begin 
            open(startpage){ |f|
                block.call startpage, f
            }
        rescue
            return
        end
    end
end

browse("https://www.ruby-lang.org/es/", 2, lambda { |page_name, web|
    puts "Header information:"
    puts "Title: #{web.to_s.scan(/<title>(.*?)<\/title>/)}"
    puts "Base URI: #{web.base_uri}"
    puts "Content Type: #{web.content_type}"
    puts "Charset: #{web.charset}"
    puts "-----------------------------"
})
Run Code Online (Sandbox Code Playgroud)

标题输出只是[],为什么?

ruby

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

ng-model 未在范围之外更新

我将 an 绑定ng-model到输入,但它所绑定的变量的值不会在div声明该指令的位置之外更新:

<div input-field
     ng-if="startTypes.selected.value == 'LocalDate' || startTypes.selected.value == 'LocalDateTime'">
  <input id="date" type="text" ng-model="date" input-date>
  <label for="date">Date</label>
  Date inner scope: {{date}}
</div>
Date outer scope: {{date}}
Run Code Online (Sandbox Code Playgroud)

选择新日期时,仅date更新内部日期。外部保留旧值(这可能是undefined或不是,取决于我是否在控制器中声明它,这并不重要)。

我正在使用Angular-Materialize,我不确定这是否是问题的根源,但这没有意义,因为它是 Angular 与 CSS 框架MaterializeCSS一起使用的特定框架。

是我正在使用的组件。

编辑:

我尝试date在控制器中声明为,$scope.date = new Date()并且当前日期确实已加载到日期选择器中。但是,当选择日期并且模型发生更改时,它仅在本地更新(内部范围),而在外部范围中旧值保留。

javascript angularjs angularjs-forms

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

Django QuerySet:按另一个字段的值过滤

我有一个要根据其属性过滤的模型a。该模型还具有另一个属性b。我正在尝试过滤a为0或a具有b属性值的条目(显然,对于每一行)。如何按另一列的值过滤?

这是我尝试过的,以及缺少的部分:

MyModel.objects.filter(Q(a=0) | Q(a=???)) # ??? is to be the value of the `b` column
Run Code Online (Sandbox Code Playgroud)

我正在使用Django 1.4,我知道它是一个不再受支持的旧版本,但是不幸的是执行升级不适合我。

python django django-1.4

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

按标准拆分列表

假设我有一个数字列表,我想将这个列表分成两个子列表:一个用于奇数,另一个用于平均.

evens, odds = [], []
for e in numbers:
    if e % 2 == 0:
        evens.append(e)
    else:
        odds.append(e)
Run Code Online (Sandbox Code Playgroud)

我想知道在保持相同的复杂程度的同时,是否存在针对此问题的单线程.

我尝试使用itertools.groupby但是列表需要先订购,所以我要实现一个O(2n)而不是O(n):

def is_even(n):
    return n % 2 == 0

lst = sorted(lst, key=is_even)
grouper = itertools.groupby(lst, key=is_even)
lst1, lst2 = [list(v) for k, v in grouper]
Run Code Online (Sandbox Code Playgroud)

python list

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

根据元素数量更改网格布局

我有一个可以包含 1-5 个元素的包装器。

<div class="wrapper">
  <div class="element"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想根据它们的数量更改它们的显示布局:

  • 1 个元素:1x1,33.3% 宽度

在此输入图像描述

  • 2 个元素:2x1,33.3% 宽度

在此输入图像描述

  • 3 个元素:3x1,33.3% 宽度

在此输入图像描述

  • 4 个元素:2x2,50% 宽度

在此输入图像描述

  • 5 个元素:3x2,33.3% 宽度

在此输入图像描述

如果没有 JavaScript,我该如何做到这一点?

这是Codepen供参考。

<div class="wrapper">
  <div class="element"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
body {
  padding: 20px;
}

.wrapper {
  width: 500px;
  padding: 5px 10px;
  margin: 10px 0;
  border: 2px dashed #5f5f5f;
  display: flex;
  flex-wrap: wrap;
}

.element {
  font-family: Helvetica, sans-serif;
  background-color: #ededed;
  flex: 33.3%;
  max-width: 33.3%;
  margin: 10px 0;
}

.wrapper.with-4-elements .element {
  flex: 50%;
  max-width: 50%; …
Run Code Online (Sandbox Code Playgroud)

html css flexbox

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