小编Joh*_*hnS的帖子

Prolog中==和=有什么区别?

有人可以解释Prolog中===运营商之间的区别吗?我知道这X = Y意味着X与Y统一并且如果X已经与Y统一或者可以与之结合,则为真,但我不明白这是如何不同的==.

跟进:那(见接受的答案)是有道理的.还有一个问题是,是否存在X \= Y真实且X \== Y错误的情况(反之亦然)?也就是说,X \= Y测试它们是否无法统一或者它们目前是否统一?

prolog

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

为什么标记Java变量volatile会降低同步性?

所以我刚刚学习了volatile关键字,同时为明天的TAing部分编写了一些示例.我写了一个快速程序来证明++和 - 操作不是原子的.

public class Q3 {

    private static int count = 0;

    private static class Worker1 implements Runnable{

        public void run(){
            for(int i = 0; i < 10000; i++)
                count++; //Inner class maintains an implicit reference to its parent
        }
    }

    private static class Worker2 implements Runnable{

        public void run(){
            for(int i = 0; i < 10000; i++)
                count--; //Inner class maintains an implicit reference to its parent
        }
    }


    public static void main(String[] args) throws InterruptedException {
        while(true){ …
Run Code Online (Sandbox Code Playgroud)

java concurrency synchronization volatile thread-safety

7
推荐指数
3
解决办法
1985
查看次数

将目标变量从模式匹配传递到静态

我正在编写一个 Makefile 来将弹性 beantalk 应用程序的部署包装到多个环境中。这是我第一次编写“高级”makefile,遇到了一些麻烦。

我的目标如下:

  1. make deploy本身应该使用ENVIRONMENT=$(USER)和部署ENV_TYPE=staging
  2. 要部署到的环境可以通过环境变量设置。如果ENVIRONMENT=production那么ENV_TYPE=production,否则ENV_TYPE=staging
  3. 作为设置环境变量的一种简写,可以在deploy目标后缀a-和环境名称。例如:make deploy-production

给我带来最大麻烦的是第 3 点。由于任何未命名为 production 的环境都属于暂存类型,因此我尝试使用模式匹配来定义部署到暂存环境的目标。这是我目前所拥有的:

ENVIRONMENT = $(USER)
ifeq ($ENVIRONMENT, production)
ENV_TYPE=production
else
ENV_TYPE=staging
endif
DOCKER_TAG ?= $(USER)
CONTAINER_PORT ?= 8000
ES_HOST = logging-ingest.$(ENV_TYPE).internal:80

.PHONY: deploy
deploy:
    -pip install --upgrade awsebcli
    sed "s/<<ES_HOST>>/$(ES_HOST)/" < 01-filebeat.template > .ebextensions/01-filebeat.config
    sed "s/<<DOCKER_TAG>>/$(DOCKER_TAG)/" < Dockerrun.template | sed "s/<<CONTAINER_PORT>>/$(CONTAINER_PORT)/" > Dockerrun.aws.json
    eb labs cleanup-versions --num-to-leave 10 --older-than …
Run Code Online (Sandbox Code Playgroud)

makefile gnu-make

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