我有一些关于程序顺序以及它如何影响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) 是否有一种简单的算法来生成随机无向双向图(给定多个顶点作为输入)?我理解如何确定给定的图是否是双连的,但我正在努力以编程方式生成一个图.
我有一个 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 错误。
是否可以拥有限制对托管存储桶的访问的用户级权限?
我正在尝试从一个打包在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 ×2
amazon-iam ×1
amazon-s3 ×1
classloader ×1
concurrency ×1
file ×1
graph ×1
graph-theory ×1
jar ×1
permissions ×1
windows ×1