`
jackyhongvip
  • 浏览: 159686 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

关于中断处理

    博客分类:
  • j2se
在历史上,Java试图提供过抢占式限制中断,但问题多多,例如前文介绍的已被废弃的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出于Java应用代码的健壮性的考虑,降低了编程门槛,减少不清楚底层机制的程序员无意破坏系统的概率。    如今,Java的线程调度不提供抢占式中断,而采用协作式的中断。其实,协作式的中断,原理很简单,就是轮询某个表示中断的标记,我们在任何普通代码的中都可以实现。 例如下面的代码:    volatile bool isInterrupted;    //…    while(!isInterrupted) {

CPU过高

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。 (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen) 以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。 通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题。但是,怎么定位到具体线程或者代码呢? 首先显示线程列表: ps -mp pid -o THREAD,tid,time 找 ...

阻塞同步synchronized

    博客分类:
  • j2se
转自:http://blog.csdn.net/chen77716/article/details/6618779   目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。    数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能会进一步追问:JVM底层又是如何实现synchronized的? ...

阻塞同步 lock

    博客分类:
  • j2se
转自:http://blog.csdn.net/chen77716/article/details/6641477   前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现。与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.ut ...
将下面的内容全部贴到hosts文件: 203.208.46.146    www.google.com 203.208.46.146    www.google.cn 203.208.46.146    google.com 203.208.46.147    www.google.com.hk 203.208.46.147    google.com.hk 203.208.46.132    clients1.google.com 203.208.46.149    mail.google.com 203.208.46.161    chatenabled.mail.go ...
转自:http://www.danielschneller.com/2010/07/java-object-initialization-order-know.html   Recently I came across an interesting problem whose solution eluded me at first glance. Consider these three classes: package com.ds.test; public class Upper { String upperString; public Upper() { ...

RPC_THRIFT使用范例

    博客分类:
  • RPC
 
1.下载与安装   官方网站:http://thrift.apache.org/   下载地址:http://labs.renren.com/apache-mirror//thrift/0.6.1/thrift-0.6.1.tar.gz   安装Thrift: cd /usr/local/src wget http://labs.renren.com/apache-mirror//thrift/0.6.1/thrift-0.6.1.tar.gz tar zxvf avro-src-1.5.1.tar.gz cd thrift-0.6.1 ./configure make m ...

RPC_AVRO范例

    博客分类:
  • RPC
1.下载与安装   官方网站:http://avro.apache.org/   下载地址:http://labs.renren.com/apache-mirror//avro/avro-1.5.1/avro-src-1.5.1.tar.gz   安装之前确保已经装了maven cd /usr/local/src wget http://labs.renren.com/apache-mirror//avro/avro-1.5.1/avro-src-1.5.1.tar.gz tar zxvf avro-src-1.5.1.tar.gz cd avro-src-1.5.1/lang/ ...
通过NAT实现虚拟服务器(VS/NAT)由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用保留IP地址(10.0.0.0/255.0.0.0、 172.16.0.0/255.128.0.0和192.168.0.0/255.255.0.0)[64, 65, 66]。这些地址不在Internet上使用,而是专门为内部网络 ...
集群管理要做哪些事情: 节点的添加。通知大家,I join the group. 引起部分hash空间的重新分布,需要做数据传输(bootstrap);什么时候,新的节点开始响应request?所有group memeber视图一致时。部分节点更新了member视图,部分节点没有更新,如果这时读写数据会有什么结果? 节点的删除(宕机)。原则上数据会有N个备份,一台宕机,则会要找寻下一台存放备份 节点重启. 不能因为重启而导致rebalancing of the partition 节点之间的heartbeat:检测节点的状态 节点之间数据的一致性:拥有相同数据备份的节点,怎样保证数 ...
mysql-mmm+amoeba+keepalived架构简介:利用mysql-mmm来实现mysql的高可用,利用amoeba来实现读写分离,利用keepalived来实现amoeba程序的高可用。从而从整体上实现mysql的高可用行。 一、MMM简介: MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的 ...
一、利用amoeba实现高可用下的读写分离 1、 关于amoeba的介绍和安装我这里不做介绍了,请查看:http://blog.chinaunix.net/u3/93755/showart.php?id=2363202,有什么问题我们再一起讨论。 2、 Amoeba在mysql-mmm架构下的配置 配置的除了amoeba的监听IP外其他的均采用上面mmm分配的浮动IP,因为当出现故障后,浮动IP会自动分配到正常的server上。amoeba.xml的配置如下: <?xml version="1.0" encoding="gbk&qu ...
调整MySQL运行参数,修改/etc/my.cnf文件调整mysql运行参数重启MySQL后生效,在MySQL4版本以后,一部分内部变量可以在MySQL运行时设置,不过重启MySQL就失效了。 mysqld程序--目录和文件basedir = path # 使用给定目录作为根目录(安装目录)。datadir = path # 从给定目录读取数据库文件。pid-file = filename # 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); [mysqld] ...
1、源码安装MySQL 5.1 GA 创建组和用户: [root@mysqldb2 ~]# groupadd mysql [root@mysqldb2 ~]# useradd -g mysql mysql 解压缩安装包: [root@mysqldb2 ~]$ cd /data/software/ [root@mysqldb2 software]$ tar xvfz mysql-5.1.51.tar.gz  [root@mysqldb2 software]$ cd mysql-5.1.51 进入mysql安装包目录,执行configure并加载适当参数 ...

RPC_PROTOBUL范例

    博客分类:
  • RPC
1.下载与安装   官方网站:http://code.google.com/p/protobuf/   下载地址:http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.bz2   protocol buffers并没有实现RPC通信,可以使用第三方的RPC实现protobuf-socket-rpc,下载地址是:http://protobuf-socket-rpc.googlecode.com/files/protobuf-socket-rpc-2.0.jar cd /usr/local/src wget http://prot ...
Global site tag (gtag.js) - Google Analytics