packagecom.yuanzijian01;
/*
*线程通讯:一个线程完成了自己的任务时,要通知另外一个线程去完成另外一个任务.
生产者与消费者
wait():等待如果线程执行了wait方法,那么该线程会进入等待的状态,等待状态下的线程必须要被其他线程调用notify方法才能唤醒。
notify():唤..
分类:
编程语言 时间:
2016-06-02 00:56:27
阅读次数:
245
死锁问题:死锁的解决:
1.算法;
2.避免同时使用多个锁;死锁如何形成的:
有多个锁的时候,同步时会出现死锁线程的通讯:— 在同步时执行
在同步的情况下,线程之间可以互相通信,释放和获得锁对象。(在同步代码块内)
wait() —- 释放所有的锁资源(挂起状态)
notify() —- 唤醒 挂起的线程(通知最近一个被挂起的线...
分类:
其他好文 时间:
2016-05-30 15:02:28
阅读次数:
165
调用sleep()和yield()的时候锁并没有被释放,而调用wait()将释放锁。这样另一个任务(线程)可以获得当前对象的锁,从而进入它的synchronized方法中。可以通过notify()/notifyAll(),或者时间到期,从wait()中恢复执行。 只能在同步控制方法或同步块中调用wa ...
分类:
编程语言 时间:
2016-05-29 00:39:51
阅读次数:
177
alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东 ...
分类:
其他好文 时间:
2016-05-25 11:10:11
阅读次数:
151
经典的消费者和生产者的的实现: 注意事项: 1:在循环里面用wait(),因为当线程获得了锁,但是有可能还没有满足其他条件: 2:公用的缓冲池要用锁机制: 执行结果是: ...
分类:
编程语言 时间:
2016-05-24 00:11:06
阅读次数:
195
另外,GCD还有一些高级用法,例如让后台2个线程并行执行,然后等2个线程都结束后,再汇总执行结果。这个可以用dispatch_group, dispatch_group_async 和 dispatch_group_notify来实现,示例如下: ...
分类:
编程语言 时间:
2016-05-23 18:45:26
阅读次数:
347
1.sleep和wait的区别?1.sleep必须指定时间,wait可以指定可以不指定。2.sleep和wait都可以让线程处于冻结状态,释放执行权。(相同点)3.持有锁的线程执行sleep,不释放锁,持有锁的线程执行到wait释放锁。4.sleep到时间会自动醒,wait没有指定时间,只能被其他线程通过notify唤..
分类:
编程语言 时间:
2016-05-18 07:00:13
阅读次数:
261
Java并发编程系列【未完】: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间的协作(wait/notify/sleep/yield/join) Java 并发编 ...
分类:
编程语言 时间:
2016-05-17 08:32:47
阅读次数:
222
在多个线程同时运行时,就存在多个线程之间的调度控制、资源分配等。本节就来讲解线程使用中的一系列控制命令和使用方法线程的启动start()、join()与停止stop()线程的休眠sleep()、挂起yield线程的同步synchronized线程的同步锁机制:wait()、notify()和notifyAll()start()启动..
分类:
编程语言 时间:
2016-05-16 17:53:13
阅读次数:
169