半路出家学习java, 花了几分钟简单看了。在早上那个例子上稍微改了下,我的理解是在java synchronized只是个线程同步标志,但是不会堵塞线程,而wait会堵塞调用者线程,类windows的堵塞函数,而notify相当于解锁(个人把这个过程当临界区来理解的),下边例子主要是,默认先运行的...
分类:
编程语言 时间:
2014-09-27 22:10:00
阅读次数:
245
?NSThread: –优点:NSThread 比其他两个轻量级,使用简单 –缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销?NSOperation: –不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上 –NSO...
分类:
移动开发 时间:
2014-09-27 18:02:30
阅读次数:
205
本文是学习网络上的文章时的总结,感谢大家无私的分享。
CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用awa...
分类:
编程语言 时间:
2014-09-26 20:55:28
阅读次数:
192
??
1线程为什么要同步
A:共享资源,多个线程都可对共享资源操作。
B:线程操作共享资源的先后顺序不确定。
C:处理器对存储器的操作一般不是原子操作。
2互斥量
mutex操作原语
pthread_mutex_t
pthread_mutex_init
pthread_mutex_destroy
pthread_mutex_lock
...
分类:
编程语言 时间:
2014-09-25 20:41:07
阅读次数:
309
1
信号量
信号量可以有n把锁。
依赖的头文件
#include
函数声明
sem_t
表示信号量
int sem_init(sem_t *sem, int pshared,unsigned int value);
名称:
sem_init
功能:
...
分类:
编程语言 时间:
2014-09-25 19:49:37
阅读次数:
323
1
条件变量
条件变量给多个线程提供了一个汇合的场所。
依赖的头文件
#include
函数声明
定义分配条件变量
pthread_cond_t cond =PTHREAD_COND_INITIALIZER;
int pthread_cond_init(pthread_cond_t*restrict cond, const pthread_co...
分类:
编程语言 时间:
2014-09-25 19:16:27
阅读次数:
337
本文是学习网络上的文章时的总结,感谢大家无私的分享。
当一个线程想要访问某个共享资源,首先,它必须获得semaphore。如果semaphore的内部计数器的值大于0,那么semaphore减少计数器的值并允许访问共享的资源。计数器的值大于0表示,有可以自由使用的资源,所以线程可以访问并使用它们。
package chapter3;
import java.util.concurrent...
分类:
编程语言 时间:
2014-09-25 18:10:47
阅读次数:
224
(转)临界区,互斥量,信号量,事件的区别(线程同步) 分类: C++ windows 核心编程 2012-04-10 14:55 2064人阅读 评论(0) 收藏 举报 semaphore mfc null events thread http服务器 四种进程或线程同步互斥的控制方...
分类:
编程语言 时间:
2014-09-25 16:40:39
阅读次数:
190
线程同步
同属于一个进程的不同线程是共享内存的,因而在执行过程中需要考虑数据的一致性。
假设:进程有一变量i=0,线程A执行i++,线程B执行i++,那么最终i的取值是多少呢?似乎一定是i=2;其实不然,如果没有考虑线程同步,i的取值可能是1.我们先考虑自加操作的过程:a,首先将内存中i的值copy到寄存器;b,对寄存器中i的copy进行自加;c,将寄存器中自加的结...
分类:
编程语言 时间:
2014-09-25 14:13:09
阅读次数:
297
今天重新把昨晚的线程同步面试题做一遍时,发现实际情况运行下来时,线程一直不同步。后来经过不断测试,发现自己的一个误区。之前一直以为,线程如果被唤醒后再次执行时,会从头开始运行这个线程,也就是重新运行Runnable中的run()方法;而实际情况是,被唤醒并且被执行的线程是从上次阻塞的位置从下开始运行...
分类:
编程语言 时间:
2014-09-24 21:45:47
阅读次数:
290