最新文章列表

深入JVM锁机制之一:synchronized

目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。 数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能会进 ...
bigsea 评论(0) 有738人浏览 2013-03-15 09:53

4、java.lang.Thread线程类

一、如何在自定义的代码中,自定义一个线程呢?       通过对api的查找,发现java已经提供了对线程这类事物的描述。就是Thread类   二、Thread类       线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。   public class Thread implements Runnable { //变量----------- ...
豆豆咖啡 评论(0) 有1860人浏览 2013-03-05 16:58

Java中Synchronized的使用注意事项

转自:http://www.blogjava.net/freeman1984/archive/2011/10/17/361403.html 在Java1.5之前,synchronized应该是最常用的java支持并发手段。那synchronized是怎么做到的了,从java1.0开始,java中的每个对象就一个内部锁。如果一个类的方法被synchronized关键字所修饰,那么这个对象的锁将保护整个 ...
boonya 评论(0) 有1253人浏览 2013-02-26 14:21

lock 锁class类对象和实例对象

java thread 线程中 的synchronized关键字 可以放到方法上,也可以修饰对象上 eg: private synchronized void testSyncMethod() { //当线程执行到此处时,它必须获得一个锁,此时锁定的对象是:调用此方法的对象a } private void testSyncMethod() { synchronized ...
王新春 评论(0) 有2213人浏览 2013-02-25 23:18

Chapter 14. Multithreading

1.  The essential difference between multiple processes and multiple threads is that while each process has a complete set of its own variables, threads share the same data. However, shared variables ...
leonzhx 评论(0) 有1020人浏览 2013-02-25 12:53

多线程访问 资源的安全控制

对于线程安全,大家都知道使用synchronized控制访问的资源,有变量安全、方法安全、块安全。 我这里有个需求是这样的,我这里作为服务端有很多客户端与我进行交互,服务端也会主动发消息给客户端,但是要求每次交互时只能有一个用户。也就是说发送一组信息、等待信息、处理信息返回时这个链路只能有一个人使用。   也许大家马上会想到这样写: synchronized (ThreadT.devIp ...
cuisuqiang 评论(3) 有5259人浏览 2013-02-01 16:17

“锁”这玩意

       Java中的“锁”经常用于处理多线程编程中不同线程对同一个变量进行处理时造成的不同步问题。          举个例子,如果一个Boy和他的G ...
中南大宝 评论(0) 有1425人浏览 2013-01-28 14:47

JAVA线程模型

线程模型 一、同步模型 最常见的例子就是银行取款,A,B两个人分别在银行对一个账户进行取款操作,账户仅有1000余额,当同事点击取款1000的按钮时,银行会怎样处理呢? 每个人都查询到了余额1000元没错,即使同时取款,也会有一方不成功的,否则的话,银行会被搞垮的,他才没那么笨,但是这该如何实现呢? 1、synchronized同步关键字 这里涉及到多个线程对共享资源进行处理,这里就必须要给线 ...
小路青青0113 评论(2) 有2288人浏览 2013-01-17 18:21

多线程同步小例子,100张票3个窗口同时销售

公司不能登录,很久不发博客,今天偶然看到多线程,发现自己同步用的不好,简单写个例子用synchronized 关键字的例子,100张票 3个窗口同时销售。另外加锁也可以用Lock 接口的实现类,此处不做拓展,可参考Java核心 基础卷 直接上代码。   package com.learning.test; public class TestMutithread { publ ...
kevin_in_java 评论(0) 有1452人浏览 2013-01-11 21:51

使用visual vm 分析线程(下)

接着上一篇《线程安全扫盲贴三》,开始第二次测试。 第二次测试 这次并发1000个客户端消息,每次并发20条后休眠1秒。客户端消息发给我的Server后,我的Server再转发给消息指定的服务器。为了产生异常消息,我将指定的目标服务器关闭了,于是每次消息第一次发送完成后,都成为了一个异常消息,每个异常消息将会自动间隔30s;1m;2m发送3次,发送失败后停止发送。 这样虽然是并发了1000个 ...
silly_sinba 评论(0) 有2277人浏览 2013-01-08 16:07

使用visual vm 分析线程(上)

网上很多visual vm的指南手册之类,visual vm最新的下载好后,直接运行即可。 如果无法运行,在右键选择要执行的类,选择Run As-->Open Run Dialog,在新窗口中选择Arguments标签。 vm参数上增加:-XX:+PerfBypassFileSystemCheck     【代码背景介绍——4个线程】 客户端向我的Server中发送消息,我的 ...
silly_sinba 评论(0) 有2831人浏览 2013-01-08 12:02

线程安全扫盲贴二——锁详解

上篇提了一点:  由于内部锁是基于线程而非调用的,当一个线程执行increase方法时,已经拿到了counter对象引用的锁,那么其他线程执行同一个对象的increase或increase2会堵塞等待counter对象锁。   这里涉及到线程的重进入机制,如果线程A进入了increase,那么它已经拿到了counter的对象锁,那么该线程也可以进入increase2,因为这里的increase ...
silly_sinba 评论(0) 有1092人浏览 2013-01-05 11:53

关于ThreadLocal

关于ThreadLocal   文章介绍了ThreadLocal 的实现原理,并讲述了使用ThreadLocal替代synchronized的好处 同时配有相关的例子,也介绍了spring如何实现session管理以及ThreadLocal在完成多个web请求返回对应的结果的例子 http://baike.baidu.com/view/4498010.htm
phpxiaoxin 评论(0) 有1183人浏览 2012-12-31 18:45

线程安全扫盲贴一——什么是线程安全

线程的系统都写完了,遇到很多问题,刚开始写到处都在synchronized,跌倒又爬起来,现在回过头来看看JAVA并发实践,开始整理下。   《JAVA并发编程实践》说线程安全就是,在单线程执行时候,实例状态是正确的,在多线程执行的时候,状态仍要正确: a class is thread-safe when it continues to behave correctly when acces ...
silly_sinba 评论(0) 有1690人浏览 2012-12-31 17:41

java-synchronized修饰方法释疑

java里面用synchronized修饰方法时: 对于同一个对象的来说 调用synchronized修饰的方法会相互阻塞,调用非synchronized修饰的方法,相互不会阻塞(没有任何限制) 对不同对象来说,则没有以上任何限制
shuhucy 评论(0) 有1028人浏览 2012-12-27 14:32

关于ThreadLocal分析和总结

什么是ThreadLocal?        首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自 ...
longgangbai 评论(0) 有1866人浏览 2012-12-03 15:56

多线程(synchronized)的问题

1.在静态方法上使用同步时会发生什么事? 同步静态方法时会获取该类的“Class”对象,所以当一个线程进入同步的静态方法中时,线程监视器获取类本身的对象锁,其它线程不能进入这个类的任何静态同步方法。它不像实例方法,因为多个线程可以同时访问不同实例同步实例方法。 2.静态同步方法与非静态同步方法会相互影响吗? 静态方法的锁对象是该类的“Class”对象,非静态方法的锁对象是该类的某个实例对象,所以 ...
TopLongMan 评论(0) 有898人浏览 2012-11-29 22:08

java synchronized内置锁的可重入性和分析总结

      最近在读<<Java并发编程实践>>,在第二章中线程安全中降到线程锁的重进入(Reentrancy)            当一个线程请求其它的线程已 ...
longgangbai 评论(1) 有4967人浏览 2012-11-28 17:01

synchronized关键字实现信号量同步功能

下面的代码,不加mys.acquire();和mys.release();的时候,各线程会交替输出。 加上的话,各线程会串行输出,说明信号量机制生效了。 MySemaphore.java interface Semaphore { void acquire(); void release(); } public class MySemaphore implements ...
blogzhoubo 评论(0) 有1807人浏览 2012-11-22 09:55

[转载]java.util.concurrent.locks Synchronized

主要相同点:Lock能完成Synchronized所实现的所有功能。 主要不同点:Lock有比Synchronized更精确的县城予以和更好的性能。Synchronized会自动释放锁,但是Lock一定要求程序员手工释放,并且必须在finally从句中释放。 synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列 如果实例化不同的对象 那么synchronized就 ...
zhy20045923 评论(0) 有1326人浏览 2012-11-12 13:56

最近博客热门TAG

Java(141746) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics