happens-before:描述内存可见性as-if-serial:无论怎么重排序,程序的运行结果不会改变 ReentrantLock依赖了队列同步器AQS,其实现方式是volatile变量的读写操作进行线程间通信,通过CAS修改state值,成功,其state值>0,则取锁成功 Concurre ...
分类:
Web程序 时间:
2017-03-29 16:26:45
阅读次数:
249
好处:解决了线程安全问题。弊端:相对降低性能,因为判断锁需要消耗资源,产生了死锁。定义同步是有前提的:1,必须要有两个或者两个以上的线程,才需要同步。2,多个线程必须保证使用的是同一个锁。 同步的第二种表现形式:同步函数:其实就是将同步关键字定义在函数上,让函数具备了同步性。 同步函数是用的哪个锁呢 ...
分类:
编程语言 时间:
2017-03-26 17:09:16
阅读次数:
156
1、IPC(Inter-Process Communication,进程间通信)与线程通信的几种方式 异步:如队列 同步:RPC调用,如web service Java线程间通信:FutureTask、Exchanger和共享全局变量的方式 ...
分类:
编程语言 时间:
2017-03-18 00:53:18
阅读次数:
187
1,Handler机制和原理?Handler是一个消息分发对象,先进先出。当Hanlder发送消息时,首先进入消息队列,通过Looper对消息队列进来轮询,处理未处理的消息,并发给对应Handler进行处理。消息的发送和接收不是同步的。2,什么时候用Handler?子线程刷新UI界面,线程间通信,一些..
分类:
其他好文 时间:
2017-03-08 01:24:13
阅读次数:
128
1:多线程(理解) (1)JDK5以后的针对线程的锁定操作和释放操作 Lock锁 (2)死锁问题的描述和代码体现 (3)生产者和消费者多线程体现(线程间通信问题) 以学生作为资源来实现的 资源类:Student 设置数据类:SetThread(生产者) 获取数据类:GetTh... ...
分类:
编程语言 时间:
2017-03-01 18:15:12
阅读次数:
156
1.1、线程之间的通信方法 多个线程在处理统一资源,但是任务却不同,这时候就需要线程间通信。 等待/唤醒机制涉及的方法: 1. wait():让线程处于冻结状态,被wait的线程会被存储到线程池中。 2. notify():唤醒线程池中的一个线程(任何一个都有可能)。 3. notifyAll(): ...
分类:
编程语言 时间:
2017-02-09 23:54:06
阅读次数:
407
1 什么是并发问题。 多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。 银行两操作员同时操作同一账户就是典型的例子。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户减去 50元,A先提交,B后提交。 最后实际账户余额为1000 ...
分类:
编程语言 时间:
2016-12-22 14:26:45
阅读次数:
212
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17225469 wait()方法:public final void wait() throws InterruptedException,IllegalMonitorStateExcepti ...
分类:
编程语言 时间:
2016-12-19 22:12:21
阅读次数:
193
可以通过QThread实现跨平台的多线程开发,Qt库负责在特定平台上的特定多线程实现。要采用QThread进行多线程开发,首先需要包含头文件: #include <QThread> 然后需要从QThread继承一个自己的线程类,暂作MyThread,关键是要实现QThread内的一个虚函数run。在 ...
分类:
移动开发 时间:
2016-12-10 06:48:05
阅读次数:
747
注意信号量与条件变量的区别 信号量内容可见:http://www.cnblogs.com/charlesblc/p/6142868.html 信号量、共享内存,以及消息队列等System V IPC三剑客主要关注进程间通信; 而条件变量、互斥锁,主要关注线程间通信。 下面内容参考:http://bl ...
分类:
其他好文 时间:
2016-12-08 03:18:30
阅读次数:
168