小编Twi*_*ite的帖子

一起使用@synchronized,volatile和OSMemoryBarrier().一个人是否意味着另一个?

来自Java我试图在Objective-C中学习线程安全性.到目前为止,我已经倾斜了

  • @synchronized块阻止对同一代码块的并发访问
  • volatile变量可确保线程变化的可见性
  • OSMemoryBarrier(); 确保正确的访问顺序

我的问题是:其中一个是否意味着其中一个或多个?如果我想要这三个,我是否需要使用这三种技术?

例:

volatile int first = 0;
volatile int second = 0;

[...]

@synchronized {
    OSMemoryBarrier();
    first++;
    OSMemoryBarrier();
    second++;
    OSMemoryBarrier();
}
Run Code Online (Sandbox Code Playgroud)

在Java中,当进入和离开同步块以及读取或写入volatile变量时,这三个都得到保证.真正?

concurrency objective-c thread-safety

8
推荐指数
1
解决办法
2925
查看次数

报告Android应用安装回Facebook,而不使用他们的api

从我的Android应用程序中,我想将其安装发布回Facebook,以便为他们的新移动应用安装广告进行转换跟踪,但我希望不使用他们的api进行转换.

所以不要这样做

com.facebook.Settings.publishInstall(context, appId);
Run Code Online (Sandbox Code Playgroud)

我想将带有所需参数的HTTP请求发送到某个URL.

编辑:

我记录了两个发送到Facebook发布应用程序安装的请求,它们看起来像这样:

请求:

GET /[app id]?format=json&sdk=android&fields=supports_attribution HTTP/1.1

User-Agent: FBAndroidSDK.3.0.0.b

Content-Type: multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f

Host: graph.facebook.com

Connection: Keep-Alive

Accept-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

响应:

HTTP/1.1 200 OK

Access-Control-Allow-Origin: *

Cache-Control: private, no-cache, no-store, must-revalidate

Content-Type: text/javascript; charset=UTF-8

ETag: "24ea6554744eece05b90dd2e65af63277cdcaf53"

Expires: Sat, 01 Jan 2000 00:00:00 GMT

Pragma: no-cache

X-FB-Rev: 658994

X-FB-Debug: P2GE3fDVAnRJh62rBS5WXD4ce1hTy8Pwvjq5rT/I+TI=

Date: Tue, 30 Oct 2012 11:37:09 GMT

Connection: keep-alive

Content-Length: 52



{"supports_attribution":true,"id":"[app id]"}
Run Code Online (Sandbox Code Playgroud)

请求:

POST /[app id]/activities?format=json&sdk=android&migration_bundle=fbsdk%3A20120913 HTTP/1.1

User-Agent: FBAndroidSDK.3.0.0.b

Content-Type: multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f

Host: graph.facebook.com

Connection: Keep-Alive

Transfer-Encoding: …
Run Code Online (Sandbox Code Playgroud)

android facebook

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

<mvc:resources />中的绝对路径,而不是相对于spring servlet映射的路径

我正在尝试将请求映射到spring环境中的静态资源.我的app服务器是Jetty.

在web.xml中,我将各种url模式映射到我的spring servlet:

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/otherpath/*</url-pattern>
</servlet-mapping>
[many more mappings...]
Run Code Online (Sandbox Code Playgroud)

请注意,"/"未映射到我的spring servlet.

在spring-servlet.xml中,我使用mvc:resources标签将url映射到具有静态内容的目录:

<mvc:resources mapping="/static/**" location="/WEB-INF/static/" />
Run Code Online (Sandbox Code Playgroud)

这不像我预期的那样有效.而不是映射

/static/ to /WEB-INF/static/,
Run Code Online (Sandbox Code Playgroud)

它映射

/static/static/ to /WEB-INF/static
Run Code Online (Sandbox Code Playgroud)

原因是"mvc:resources"中给出的映射似乎与映射到spring servlet的路径无关或相对.

有没有办法考虑相对于/为映射的完整路径,而不是相对于servlet映射的路径?

spring spring-mvc

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