并发编程
线程通信
共享内存和消息传递
线程同步
控制不同线程的执行顺序
java并发
基于共享内存模型指令重排序
编译器重排序处理器重排序
cpu重排序写缓存区(cache、寄存器)
内存屏障顺序一致性与Happens-before执行结果有序性
volatile
解决内存可见性问题
锁
lock 显示锁
可中断可定时...
分类:
编程语言 时间:
2014-07-25 11:24:11
阅读次数:
275
今天查看hadoop源代码, 发现有个Unsafe.java稍微总结下优势 1 减少线程调度开销, Unsafe.java 通过采用非堵塞原子方式来减少线程调度开销 2 传统线程通信通过wait,notify方法实现(会有信号量的堵塞队列),而Unsafe使用操作系统调度命令park,unpark,...
分类:
编程语言 时间:
2014-07-16 20:37:03
阅读次数:
273
1. 准备Looper对象2. 在WorkerThread当中生成Handler对象3. 在MainThread当中发送消息 这个过程与上一篇相反 由MainThread里面的Handler发送消息, WorkerThread里面的HandlerMessage来处理
分类:
编程语言 时间:
2014-07-14 00:57:17
阅读次数:
209
摘要 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。正文图解:代码示例:/** * @author allin.dev * ht...
分类:
移动开发 时间:
2014-07-13 10:44:31
阅读次数:
325
信号量分为两种
一种是简单的信号量,另一种是用于进程间通信的信号量集。...
分类:
编程语言 时间:
2014-07-03 16:32:04
阅读次数:
1243
调用wait()和notify()方法的前提是,线程调用这两个方法时,拥有当前对象的monitor,即锁。所以,这两种方法的调用必须放在synchronized方法或synchronized块中。
分类:
编程语言 时间:
2014-06-18 15:19:10
阅读次数:
312
1、 服务器端处理流程
接触一种技术,首先都要熟悉它的生命周期,这样才能从大局上看每个流程的细节。才有居高临下,势如劈竹的架势。加深我们对这种技术的理解。现在来看看socket服务器的生命周期。
socket程序,一般情况下,都是服务器与客户端成双成对出现。
服务器端socket的生命周期为:监听服务器端口,接受客户端连接,获取客户端输入、输出流,处理业务逻辑、发...
分类:
编程语言 时间:
2014-06-14 00:40:32
阅读次数:
459
1 线程通信java.lang.Object提供两个用于线程通信的方法:wait()
执行该方法的线程释放对象锁.把该线程放到对象等待池中.notify(
执行该方法的线程唤醒在对象的等待池中的一个线程.JVM从对象等待池中随机选择一个线程,把它转移到对象锁池中,*t1线程 t2线程共同操作一个对象...
分类:
编程语言 时间:
2014-06-11 08:23:37
阅读次数:
273