小编Kum*_*alh的帖子

发生在Java Memory Model之前和程序顺序

我有一些关于程序顺序以及它如何影响JMM中的重新排序.

在Java内存模型中,程序顺序(po)被定义为程序中每个线程中的操作的总顺序.根据JLS,这会导致发生前(hb)边缘:

如果x并且y是同一个线程的动作并且在程序顺序x之前y,那么hb(x,y)(即x发生在之前y).

所以对于一个简单的程序P:

  initially, x = y = 0
     T1     |     T2
 -----------|-----------
  1. r1 = x | 3. r2 = y  
  2. y = 1  | 4. x = r2
Run Code Online (Sandbox Code Playgroud)

我认为po(1,2)po(3,4).因此,hb(1,2)hb(3,4).

现在假设我想重新排序其中一些语句,给我P':

  initially, x = y = 0
     T1     |     T2
 -----------|-----------
  2. y = 1  | 3. r2 = …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading java-memory-model

10
推荐指数
1
解决办法
876
查看次数

生成随机双连图

是否有一种简单的算法来生成随机无向双向图(给定多个顶点作为输入)?我理解如何确定给定的图是否是双连的,但我正在努力以编程方式生成一个图.

graph-theory graph graph-algorithm

6
推荐指数
1
解决办法
311
查看次数

托管静态网站的 S3 存储桶策略

我有一个 S3 存储桶,用于托管静态网站。此示例显示了一个策略,该策略授予每个人对指定存储桶中的对象的访问权限(即公开网站):

{
  "Version":"2012-10-17",
  "Statement":[{
     "Sid":"PublicReadGetObject",
     "Effect":"Allow",
     "Principal": "*",
     "Action":["s3:GetObject"],
     "Resource":["arn:aws:s3:::example-bucket/*"]
  }]
}
Run Code Online (Sandbox Code Playgroud)

但是,我想让该网站仅可供特定的亚马逊用户访问。因此,根据本文档,我在以下位置指定这些用户Principal

{
  "Version":"2012-10-17",
  "Statement":[{
     "Sid":"PublicReadGetObject",
     "Effect":"Allow",
     "Principal": {
        "AWS": "arn:aws:iam::Account-ID:user/Dave"
     },
     "Action":["s3:GetObject"],
     "Resource":["arn:aws:s3:::example-bucket/*"]
  }]
}
Run Code Online (Sandbox Code Playgroud)

虽然这正确地为可以通过 S3 控制台访问资源的人启用了权限,但它会导致每个尝试访问托管网站的人都收到 403 错误。

是否可以拥有限制对托管存储桶的访问的用户级权限?

permissions amazon-s3 amazon-web-services amazon-iam

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

从JAR中读取文件不在Windows上工作

我正在尝试从一个打包在JAR中的文件以及读取它的类中读取.为此,我使用以下内容:

getClass().getClassLoader().getResourceAsStream(file)
Run Code Online (Sandbox Code Playgroud)

这在我在OSX上创建和运行JAR文件时工作正常,但如果我在Windows上创建并运行JAR文件,则上面的行返回null.

我在这里错过了什么吗?如果我在OSX上创建JAR并在Windows上运行它可以正常工作.只有在Windows上创建JAR时才会出现此问题.

编辑:值得一提的是,JAR文件中没有文件夹层次结构.一切都存储在一个级别,因此读取文件的类和文件本身都在同一目录中.另外,这是我在OSX和Windows上创建JAR文件的方式:

jar -cmf manifest.mf run.jar *.class file1 file2
Run Code Online (Sandbox Code Playgroud)

编辑2:我试图加载的文件是一个java .properties文件.我认为这不是造成这个问题的原因吗?

java windows jar file classloader

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