AKKA文档(java版)—角色

原文地址  译者:Zhanggc      审校:吴京润

角色

角色模型对编写并发、分布式系统进行了高度抽象。它减轻了开发者必须对互斥锁与线程管理的负担,更容易编写出正确的并发与并行系统。早在1973 年 Carl Hewitt 发表的论文中定义了角色,但一直流行于Erlang 语言中,随后被爱立信公司应用于建立高并发、可靠通信系统,取得了巨大成功。

Akka 框架里面角色的API 跟Scala 框架里面角色相似,后者一些语法曾经模仿Erlang语言。

阅读全文

Java锁的种类以及辨析(四):可重入锁

下载作者:山鸡

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑。

阅读全文

android中方便为fragment写入参数的FragmentArgs简介

原文链接  作者:Hannes Dorfmann  译者:赵峰

Android开发有时候会令人头痛。你不得不为诸如建立fragment这样简单的事情写很多代码。幸运的是java支持一个强大的工具:注释处理器(Annotation Processors)。

Fragment的问题是你不得不设置很多参数,从而让它正常运行。很多android开发新手通常这样写:

[code lang=”java”]public class MyFragment extends Fragment
{
private int id;
private String title;

public static MyFragment newInstance(int id, String title)
{
MyFragment f = new MyFragment();
f.id = id;
f.title = title;
return f;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
Toast.makeText(getActivity(), "Hello " + title.substring(0, 3),
Toast.LENGTH_SHORT).show();
}
}[/code]

这样做怎么了?我已经在自己的设备上尝试过了,它很好用?

阅读全文

线程基础之JAVA和C++0x的特性

译文连接   译文地址  译者:衣着时   校对:丁一    (有兴趣参与试译或校对的同学,请加入并发网试译者QQ群:369468545)

JAVA特性

JAVA线程通常是一个带有run()方法的java.lang.Thread的子类,然后调用这个子类对象的start()方法。我们之前定义过,数据竞争是因为两个线程同时访问内存单元,在JAVA中,内存单元是一个对象字段或数组元素。

由于JAVA旨在支持运行不受信任代码作为受信任的应用程序的一部分,必须限制不受信任代码的数据争用造成的破坏。因此不允许数据争用的任意行为,所以,JAVA语言规范包含了一个复杂的规则集,用来定义线程间的共享对象的行为,包括数据争用的行为,这些规则的影响甚至专家都觉得惊讶。然而这些规则保证了免除数据争用的程序的连续一致,对于程序来讲是个更加容易的模型。

如上所述JAVA的数据争用定义的可替换的定义是,并发冲突操作必须被阻止同时出现通过执行相同的线程,或者引入强制实施线程间的顺序的同步变量。如果采用了这些机制,就可以说一个内存操作发生在另一个内存操作之前。因此不会发生交叉存储。这基本相当于我们的定义。 阅读全文

gcc的 “-fpack-struct” 编译选项导致程序core dump的分析

感谢网友【nanxiao】的投稿

最近team引入gcov来做代码分析。编译好的程序在Solaris上运行的好好的,结果在Linux上一运行就会产生core dump文件。这篇文章就介绍整个分析过程。

首先用gdb分析core文件,显示是strlen调用出了问题:

(gdb) 
#0  0x00000034e433386f in __strlen_sse42 () from /lib64/libc.so.6
#1  0x000000000053c57a in __gcov_init ()
#2  0x000000000053c4b9 in _GLOBAL__I_65535_0_g_cmd_param () at source/rerun/aicent_ara_rerun.c:963
#3  0x000000000053dc26 in __do_global_ctors_aux ()
#4  0x0000000000403743 in _init ()
#5  0x00007fff6d6b3ce8 in ?? ()
#6  0x000000000053db55 in __libc_csu_init ()
#7  0x00000034e421ecb0 in __libc_start_main () from /lib64/libc.so.6
#8  0x0000000000404449 in _start ()

由于我们使用的gcc是用安装包形式安装的,没有源码。所以就从github上找了相应版本的gcc源代码,希望能有所帮助。以下是__gcov_init函数的代码(https://github.com/gcc-mirror/gcc/blob/gcc-4_4_7-release/gcc/libgcov.c):

阅读全文

如何编写属于自己的Java / Scala的调试器

译者:赖辉强  原文地址

在本帖中,我们将探讨Java和Scala的调试器是如何编写和工作的;系统自带的调试器,例如:Windows中的WinDbg或者是Linux/Unix中的gdb,会获取操作系统直接提供给他们的链接入口来启动,从而指导和操作外部程序的状态。工作在操作系统顶部抽象层的Java虚拟机对字节码的调试有独立的处理架构。

这个调试的框架和APIs具有全开源、文档化、可扩展的特点,这意味着你可以轻松毫无顾忌的编写自己的调试器。该框架当前的设计由两大部分构成—JDWP协议和JVMTI API层。其中每个都有一系列使性能最佳的优点和使用案例。(你也可以阅读这篇文档:深入 JAVA 调试体系

阅读全文

并发网2014.9月阅读量Top10

ICON4金秋已过,转眼又到了月底,并发网9月Top10的阅读量的文章新鲜送到,希望各位看官能喜欢!有任何意见和建议,欢迎告诉我们,我们在努力!~祝大家国庆节快乐

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及……(2,047 人阅读)

阅读全文

SOAP-Simple Object Access Protocol(简单对象访问协议)

原文链接   作者: Jakob Jenkov  译者:赵亮

SOAP是Simple Object Access Protocol(简单对象传输协议)的缩写。SOAP消息是基于XML格式进行传输的,流行的web service就是使用SOAP进行客户端和服务器之间的通信的。在这篇文章中我将介绍基础的SOAP格式(1.2版),包括:

  • SOAP XML格式
  • SOAP 消息样式
  • SOAP MEP(Message Exchange Patterns 消息交换模式 )
  • SOAP 消息路由选择
  • SOAP 通过HTTP传输

阅读全文

AKKA文档(java版)—类型化角色

原文:doc.akka.io/docs/akka/2.3.6/java/typed-actors.html  译者:小鱼      审校:吴京润

3.2 类型化角色

Akka的类型化角色是活动对象(Active Object)模式的实现。Smalltalk诞生的时候,默认的方法调用由异步派发代替同步操作。
类型化角色由2部分组成,包括一个公共的接口和实现,如果你有“企业级”Java的开发经验,这对你来说会非常熟悉。与普通的角色一样,你有一个外部的API(公共接口实例),将异步的方法调用委托给实现类的一个私有实例。
阅读全文

Bash漏洞那些事儿

英文原文链接译文链接,原文作者:Troy Hunt ,译者:有孚

还记得Heartbleed漏洞吗?如果你相信今天这个铺天盖地的传言,那说明Shellshock和它是一类的,它的名字也同样令人畏惧(弹震症,一种精神疾病),就是缺了个酷点的LOGO而已(这些漏洞的市场部的人需要加把劲了)。不过认真来讲,它还是有可能成为一个大麻烦的,正如上次heartbleed漏洞中我所做的那样,我希望能汇总出一些资料,这样对我自己来说,我能知道如何去解决这个问题,也让别人能在各种传闻里真正认识到它潜在的风险。

阅读全文

【iFeve】并发网技术沙龙集锦(含视频)

【先做个小广告:企业技术品牌建设,举办沙龙或者企业内部技术培训,请联系guolei@ifeve.com】

周日那天北京的天气不是很好,看着要下大雨。秋风中偶尔能感觉到丝丝凉意,不过妹子们还是穿短裤,一下子也就热了。沙龙是在车库咖啡举行的,车库咖啡是创业者的聚集地,它所在的那条街也改为叫中关村创业大街了。

此次参加沙龙的朋友一共186人(不包含未签到的),好吉利的数字。这次是iFeve的第一次,我们想做一场不一样的沙龙,我们想像做内容一样做沙龙。

本次活动的PPT在这里。感谢我们的协办方Coding、七牛云。下面是一些精彩合集,视频地址如下:

1. 并发编程实战
2. 如何优化Java应用
3. Go的并发之美

阅读全文

JVM的持久代——何去何从?

英文原文链接译文链接,原文作者:Abhishek Gupta ,译者:有孚

本文会介绍一些JVM内存结构的基本概念,然后很快会讲到持久代,来看下Java SE 8发布后它究竟到哪去了。

基础知识

JVM只不过是运行在你系统上的另一个进程而已,这一切的魔法始于一个java命令。正如任何一个操作系统进程那样,JVM也需要内存来完成它的运行时操作。记住——JVM本身是硬件的一层软件抽象,在这之上才能够运行Java程序,也才有了我们所吹嘘的平台独立性以及WORA(一次编写,处处运行)。

阅读全文

GC对吞吐量的影响

英文原文链接译文链接,原文作者:Nikita Salnikov-Tarnovski,译者:有孚

在看内存管理术语表的时候偶然发现了”Pig in the Python(注:有点像中文里的贪心不足蛇吞象)”的定义,于是便有了这篇文章。表面上看,这个术语说的是GC不停地将大对象从一个分代提升到另一个分代的情景。这么做就好比巨蟒整个吞食掉它的猎物,以至于它在消化的时候都没办法移动了。

阅读全文

AKKA文档(java版)—角色的引用、路径和地址

原文:http://doc.akka.io/docs/akka/2.3.6/general/addressing.html  译者:小鱼    审校者:吴京润

2.5 角色的引用、路径和地址

这一章描述,角色在一个有可能是分布式的角色系统中是如何被识别和定位的。它关系到了角色系统形成的内在监管层级以及角色跨越多个网络节点之间通信的位置透明化。 阅读全文

P2P网络

原文地址  原文作者:Jakob Jenkov  译者:林宝贵  校对:方腾飞 (编辑代为发布)

P2P网络是一种分布式的网络系统。在P2P网络中,多个计算机或节点共同组成一个网络,而不需要中心服务器来协调各计算机。

阅读全文

return top