Unsafe里putInt(),putIntVolatile()和putOrderedInt()有什么区别?

wozuiqiangdeaoyi 2014-04-15 11:18:04
void sun::misc::Unsafe::putInt (jobject obj, jlong offset, jint value)
{
jint *addr = (jint *) ((char *) obj + offset);
*addr = value;
}
。。。。这个是普通的设置int,值未必立刻回写到主存

void sun::misc::Unsafe::putIntVolatile (jobject obj, jlong offset, jint value)
{
write_barrier ();
volatile jint *addr = (jint *) ((char *) obj + offset);
*addr = value;
}
。。。。这个是支持Volatile的设置int,值立刻回写到主存

void sun::misc::Unsafe::putOrderedInt (jobject obj, jlong offset, jint value)
{
volatile jint *addr = (jint *) ((char *) obj + offset);
*addr = value;
}
。。。。那这个是什么意思?ordered?顺序设置,意思是线程安全的嘛?
...全文
884 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
levelnini 2014-04-16
  • 打赏
  • 举报
回复
我以为是java8的语法呢
wozuiqiangdeaoyi 2014-04-16
  • 打赏
  • 举报
回复
引用 1 楼 u012724379 的回复:
这是C#还是C++?
java本地方法,C++,参考意义不大
wozuiqiangdeaoyi 2014-04-16
  • 打赏
  • 举报
回复
引用 2 楼 akon405 的回复:
发错版块了、、、
没有,是java
巫巫巫 2014-04-16
  • 打赏
  • 举报
回复
发错版块了、、、
-江沐风- 2014-04-16
  • 打赏
  • 举报
回复
这是C#还是C++?
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在Android系统应用程序开发过程中,有时需要为用户设计查看较大图像的界面,比如在照片库应用或电商产品详情界面。本案例主要介绍如何运用ViewPager组件实现左右滑动切换图片,同时结合手势操作支持图片的缩放功能。下面将详细阐述这一功能的实现细节: `ViewPager`是Android软件开发工具包中提供的一个控件,它能够让用户在多个页面之间进行左右滑动以切换内容。在本应用场景中,每个页面都将展示一张图片。`ViewPager`通过适配器(通常是一个继承自`PagerAdapter`的自定义类)来提供页面内容,适配器负责加载和管理图片数据。 为了实现图片查看大图并支持手势缩放,一般会用到`ImageView`组件和`ScaleGestureDetector`类。`ImageView`是用于显示图片的基本组件,而`ScaleGestureDetector`能够帮助我们识别用户的缩放手势,从而实现图片的放大和缩小操作。 实现这一功能的步骤如下: 1. 构建一个自定义的`PagerAdapter`子类,例如`ImagePagerAdapter`,它将负责将图片数据加载到`ViewPager`的各个页面中。在`Invalidate()`方法,我们可以依据当前页的索引加载对应的图片资源。 2. 在`PagerAdapter`的`instantiateItem()`方法中,为每个页面创建一个新的`ImageView`实例,并将其添加到`ViewPager`的布局结构中。设定`ImageView`的初始图片资源。 3. 对每个`ImageView`,我们可以使用`GestureDet...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧