小编p.m*_*aes的帖子

TCriticalSection是否允许对变量进行多线程访问?

我想同步线程来访问公共变量.想象一下,我有N个线程,每个线程都可以访问TSyncThreds类型变量的全局实例.

我可以调用方法IncCount,DecCount吗?或者我会遇到并发线程访问对象的同一个实例的问题?

我只是同步访问FCcounter变量...

type
  TSyncThreads = class

  public
    FCounterGuard: TCriticalSection;
    FCounter: integer;
    FSimpleEvent: TSimpleEvent;

    constructor Create();
    procedure Wait();
    procedure IncCounter();
    procedure DecCounter();
  end;


var
  SyncThread: TSyncThreads;

implementation
uses
  Math, Windows, Dialogs;



{ TSyncThreads }

procedure TSyncThreads.DecCounter;
begin
  FCounterGuard.Acquire;
  Dec(FCounter);
  if FCounter = 0 then
    FSimpleEvent.SetEvent;
  FCounterGuard.Release;
end;

procedure TSyncThreads.IncCounter;
begin
  FCounterGuard.Acquire;
  Inc(FCounter);
  FCounterGuard.Release;
end;

constructor TSyncThreads.Create();
begin
  FCounter := 0;
  FSimpleEvent := TSimpleEvent.Create;
  FCounterGuard := TCriticalSection.Create;
  FSimpleEvent.ResetEvent;
end;

procedure TSyncThreads.Wait;
var
  ret: TWaitResult;
begin
  ret := FSimpleEvent.WaitFor(INFINITE);
end;
Run Code Online (Sandbox Code Playgroud)

delphi multithreading

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

CloverETL/Zest/GEF

哪个组件用于创建CLOVER ETL GUI?我有一些可能性:

  • 激爽
  • 在Draw2D
  • GEF

我需要创建一个用户可以创建图形的工具.

谢谢

user-interface clover zest eclipse-gef

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

使用 Chef 设置 apt 存储库

我正在创建一个在 Ubuntu 14 上安装 docker 的方法。

如何将上面的命令翻译给厨师?}

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Run Code Online (Sandbox Code Playgroud)

因此使用 apt-repository 资源:

apt_repository "???" do
  uri ???
  distribution ???
  components ???
  keyserver "hkp://p80.pool.sks-keyservers.net:80"
  key "58118E89F3A912897C070ADBF76221572C52609D"
end
Run Code Online (Sandbox Code Playgroud)

chef-infra chef-recipe docker

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

EC2容器服务与Apache Mesos

我们希望使用Docker容器在集群环境中运行我们的批处理作业.我们正在评估使用AWS ECS Container Service/Chronos/Mesos.据我所知,Apache Mesos具有EC2所具有的一些重叠特性/目的,如集群管理.Chronos是一个分布式调度程序.

我很难将所有这些技术联系起来以创建一个架构!

EC2服务取代Mesos?调度程序怎么样?

我们是一个小团队,在集群开发方面几乎没有经验.哪个堆栈更适合我们的批处理?

编辑 我做了一个巨大的编辑,我想现在我理解架构:

在此输入图像描述

这是一张由Mesos管理的两个集群的示例图片.

阅读ECS容器服务文档(http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html),AWS正在整合ECS与Mesos Apache Framework.所以我想在将来使用mesos框架来管理ECS集群中的资源.因此,可以使用Chronos(用于批量调度)和Marathon(用于长时间运行的app).

编辑 此时此刻,我们没有分布式工作,例如hadoop工作或火花工作.我们的工作要简单得多,在EC2的单个实例上运行.我们计划使用Docker来运行批处理运行的作业.

cron scheduler amazon-ec2 mesos

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

管理多个密钥对与Bastion Host

我想加强EC2的安全性.所以我有很多EC2实例和许多需要访问这些EC2实例的开发人员.每个开发人员都有自己的密钥对(公共/私有),并在每个EC2实例上添加公钥.

我也将创建一个堡垒主机.对于堡垒主机,最好的方法是什么?添加开发人员的所有pub键?或者只在密钥对上创建并为开发人员分发它?

security amazon-ec2 amazon-web-services

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

id 为 X 的堆栈不存在或已被删除 - cfn-init

我正在尝试创建一个 CloudFormation 堆栈,但得到:

id 为气流层的堆栈不存在或已被删除

气流层是我正在创建的云形成堆栈的名称。自动引用我正在创建的堆栈的正确方法是什么?

{
    "Description": "AWS CloudFormation to airflow",
    "Resources": {
        "AirflowEC2": {
            "Metadata": {
                "AWS::CloudFormation::Init": {
                    "configSets": {
                        "install_airflow": [
                            "install_airflow"
                        ]
                    },
                    "install_airflow": {
                        "commands": {
                            "test": {
                                "command": "echo Ola mundo"
                            }
                        }
                    }
                }
            },
            "Properties": {
                "ImageId": "ami-9abea4fb",
                "InstanceType": "t2.micro",
                "KeyName": "CLOUD_ADMIN",
                "SecurityGroupIds": [
                    "sg-03851765"
                ],
                "SubnetId": "subnet-0820796d",
                "Tags": [
                    {
                        "Key": "Name",
                        "Value": "ec2-airflow-production"
                    }
                ],
                "UserData": {
                    "Fn::Base64": {
                        "Fn::Join": [
                            "",
                            [
                                "#!/bin/bash -xe\n",
                                "sudo apt-get update\n",
                                "sudo apt-get …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cloudformation

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

以非 root 用户身份在 UserData 中运行命令

我正在尝试使用 EC2 UserData 脚本安装气流。我需要使用非 root 用户 (ec2-user) 运行一些命令。请参阅下面的脚本:

  UserData:
    Fn::Base64: !Sub |
      #!/bin/bash
      set -xe
      # Install GCC
      yum install -y gcc
      # Install Dependencies
      pip install boto3 awscli markupsafe six


      export AIRFLOW_GPL_UNIDECODE=yes
      export AIRFLOW_HOME=/home/ec2-user/airflow
      pip install apache-airflow[crypto,postgres]


      su - ec2-user
      whoami
      PATH=$PATH:/usr/local/bin
      airflow initdb
Run Code Online (Sandbox Code Playgroud)

我刚刚调查了日志,似乎该命令su - ec2-user不起作用并且whoami正在返回root user.

+ su - ec2-user
Last login: Sat Aug 10 15:59:37 UTC 2019 from ip-10-1-13-234.us-west-2.compute.internal on pts/0
+ whoami
root
Run Code Online (Sandbox Code Playgroud)

linux amazon-ec2 user-data

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

C++编写int缓冲区

我正在尝试将一个int数组写入fstream,但是当我调用时,我得到了一个异常fstream.write.

我可以fstream用来将int数组写入文件吗?

int main(int argc, char * argv[])
{
    fstream amostra("D:\\Amostra.txt", ios::out | ios::binary);
    const int total_elements_block = 1024;
    const int buffer_size  = total_elements_block;

    const int total_buffer = 10;

    int * buffer = new int [buffer_size];
    //for (int j=0; j<total_buffer; j++){
        for (int i =0; i<total_elements_block; i++){
            buffer[i] = i;
        }
        amostra.write((char *)(&buffer), total_elements_block*4);
    //}

    amostra.close();
    delete []buffer;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ buffer

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

用C++排序向量

我读了一个整数二进制文件到int vector.当我使用Sort函数时,向量归零...

我知道矢量没问题!

可能有什么不对?

std::ifstream input("D:\\Amostra.txt", ios::binary);
vector<int> v (NumBlocks*ELEMENTS_PER_BLOCK*sizeof(int));

input.read(reinterpret_cast<char *>(&v[0]), NumBlocks*ELEMENTS_PER_BLOCK*sizeof(int));


sort(v.begin(), v.end());

for (int i=0; i<ELEMENTS_PER_BLOCK*NumBlocks; i++){
        cout << v[i] << endl;
    };
system("pause");
Run Code Online (Sandbox Code Playgroud)

c++ sorting vector

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

算术指针和fstream C++

我正在使用内存缓冲区写入文件.我将每个记录复制到内存缓冲区,然后将其刷新到磁盘.

码:

    char * OutBuffer;
    char *pt;
    OutBuffer = new char(BufferSize);
    pt = OutBuffer;

    for (int i=0; i<(FileSize / RECORD_SIZE); i++){
        if (((i % recordsPerBlock)==0) && (i>0)){
           FileSortHandle->write(OutBuffer, BufferSize);
           pt = OutBuffer;
        }
        else{
           memcpy(pt, minRecord, RECORD_SIZE);
           pt = pt + RECORD_SIZE;
        }
           minRecord = nullptr;
    }
Run Code Online (Sandbox Code Playgroud)

当我调用"FileSortHandle-> write(OutBuffer,BufferSize);" VS显示:

"Windows在STL_Test2.exe中触发了一个断点.

这可能是由于堆的损坏,这表明STL_Test2.exe或其加载的任何DLL中存在错误.

这也可能是由于用户在STL_Test2.exe具有焦点时按下F12.

输出窗口可能包含更多诊断信息."

有人能帮帮我吗?

c++ pointers stream

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