问题:如何实现死锁。关键:1 两个线程ta、tb2 两个对象a、b3 ta拥有a的锁,同时在这个锁定的过程中,需要b的锁;tb拥有b的锁,同时在这个锁定的过程中,需要a的锁;关键的实现难点是3, —— 所以说,死锁也不是那么容易出现的吧。。实现方式synchronized、Lock 等等死锁例子1采...
分类:
编程语言 时间:
2014-07-15 23:23:36
阅读次数:
374
并发,其实是多线程才有的场景。。。java 多线程? 锁? 现在看来,即使已经工作了4、5年,这仍然不是一个简单的问题。其实java 本身有提供锁的机制。 比如 Object对象的 wait 、notify 方法。synchronized 的原理不过是直接调用对应的对象的 wait方法罢了!看tom...
分类:
编程语言 时间:
2014-07-15 08:38:49
阅读次数:
306
一个Java程序的多线程之间可以共享数据。
当线程以异步方式访问共享数据时,有时候是不安全的或者不和逻辑的。比如卖火车票,同一时刻一个线程在读取数据,另外一个线程在处理数据,当处理数据的线程没有等到读取数据的线程读取完毕就去处理数据,必然得到错误的处理结果。
卖火车票Demo:
class MyThread implements Runnable{
private int ...
分类:
编程语言 时间:
2014-07-12 21:46:55
阅读次数:
391
在java中的同步,是指多个线程在同时要访问某个对象、变量、方法、代码快等等时,保证只有唯一线程访问同步的对象(即用synchronized修为的内容)。 也可以这样理解:同步就是指保证在同一时刻只有一个线程访问同步对象的前提下,确保操作同步对象的线程顺序,跟他们发出访问同步对象请求时的顺序一致。....
分类:
编程语言 时间:
2014-07-11 19:47:20
阅读次数:
157
ReentrantLock 一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。这个类主要基于AQS(AbstractOwnableSynchronizer)封装的 公平与非公平锁。所谓公平锁就是指在多个线程的争...
分类:
编程语言 时间:
2014-07-09 14:31:42
阅读次数:
306
A-synchronized和AB-synchronized传输在1个frame传输完成后地址计算有所不同。 A-synchronized: last array in the frame + SRCCIDX/DSTCIDX AB-synchronized: beginning array in t...
分类:
其他好文 时间:
2014-07-07 20:09:38
阅读次数:
230
在多个线程要互斥访问数据,但线程间需要同步时——例如任务分多个阶段,特定线程负责特定阶段的情况,经常合作使用synchronized 和 wait() /** * * 计算输出其他线程锁计算的数据 * @author * */public class Main { public stati...
分类:
编程语言 时间:
2014-07-07 09:13:53
阅读次数:
220
第一次见到这个题目,我觉得自己没学到java,太浅了,其实这个问题没有考synchronized关键字,只是考什么是对象?1.在java编程思想的第二章有一句话;一切都是对象,很可惜int,char 等不是的,虽然他们有他们的包装类,但是java还是保留了int 这些好用的原子类型,对于synchr...
分类:
编程语言 时间:
2014-07-06 17:04:51
阅读次数:
409
多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个Thread类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 ——synchronized和volatil...
分类:
编程语言 时间:
2014-06-30 23:44:59
阅读次数:
325
在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情。Java 语言中主要的同步手段就是synchronized关键字(也称为内在锁),它强制实行互斥,确保执行synchronized块的线程的动作,能够被后来执行受相同锁保护的synchronized块的其...
分类:
编程语言 时间:
2014-06-29 20:11:33
阅读次数:
210