1 锁的独占与共享
java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个线程同时获取锁,并发访问 共享资源,如:ReadWriteLock。AQS的内部类Node定义了两个常量SHARED和EXCLUSIVE,他们分别标识 AQS队列中等待线程的锁获取模式。
很显...
分类:
编程语言 时间:
2014-12-31 14:40:25
阅读次数:
232
什么是共享内存
顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用...
分类:
系统相关 时间:
2014-12-25 18:07:50
阅读次数:
305
粘贴板提供了一种核心OS特性,用于跨应用程序共享数据。用户可以跨应用来复制粘贴,也可以设置只在本应用中复制粘贴用来保护隐私。 UIPasteboard类允许访问共享的设备粘贴板以及内容,下面代码返回一般的系统粘贴板,它适合大多数一般的复制粘贴应用。UIPasteboard *pd = [UIP...
分类:
移动开发 时间:
2014-12-24 11:41:08
阅读次数:
222
题目要求:
有4个线程,其中两个线程每次对x加1,另外两个每次对x减1,如何实现?
分析:
x就是这4个线程要处理的共享数据,不同种线程有不同的处理方式,但操作的数据是共同的,联想到“窗口买票问题”,但是卖票只是单纯的减。
所以,多个线程访问共享对象或数据的方式,先看,如果每个线程执行的代码相同,那么就可以使用同一个Runnable对象,这个对象中有被共享的数据,如...
分类:
编程语言 时间:
2014-12-11 01:38:11
阅读次数:
213
通过《linux内核并发基本概念》,我们看到了,对于并发访问共享资源,造成的运行结果与预期的不一致问题,这样的结果是软件设计者不能允许的。我们知道,我们编写一个软件一定是需要软件实现特定的功能,如果我们在设计的时候,期望得到结果A,但实际软件运行中却得到的结果B,那么这个软件是相当糟糕的,因此,对于并发引起的竞态,是我们在设计内核和驱动软件时,必须要留意的。
在《linux内核并发基本概念》中,...
分类:
系统相关 时间:
2014-11-30 23:27:10
阅读次数:
414
多个线程对共同数据的访问的实现,要根据情况而定(1)当访问共同的代码的时候:可以使用同一个Runnable对象,这个Runnable对象中有这个共享数据,比如卖票系统就可以这么做。或者这个共享数据封装在一个对象当中,然后对这个对象加锁,也可以实现数据安全访问。(2)当各个线程访问的代码不同时:这时候...
分类:
编程语言 时间:
2014-11-30 18:41:59
阅读次数:
111
今天发现客户反映后台连不上数据库,远程程查看之后发现机器可以访问服务器共享,但是ping网络的时候ping不通。Ip设置也没问题,网络也都连上了,而且客户反映他们那其它机器都能连上。百度了一下,发现有两种可能:1、防火墙没关, 随叫客户去查看防火墙是否已经关闭,没关的话就把防火墙关了。2、端口...
分类:
其他好文 时间:
2014-11-26 11:10:58
阅读次数:
572
用C语言编写程序的时候,我们经常会遇到这样一种情况:多个C文件共享(访问)同一个变量或一个C文件模块功能很多需要拆分成几个不同功能模块的点C文件,如很让原本在一个C文件中共享的数据在拆分后的不同点C文件共享?~
我们一般会想既然两个文件都要访问flag变量,那就在mod1.h中声明一个int flag,然后通过“ #include"mod1.h" ”头文件包含,在main.c和mod1.c中都是可见的,那么多个点C源文件就可以共享变量flag了。
这样思考确实有一定道理,但是实际...
分类:
其他好文 时间:
2014-11-25 18:44:47
阅读次数:
187
在前一小节,介绍了在多线程编程中使用同步机制的重要性,并学会了如何实现同步的方法来正确地访问共享资源。这些线程之间的关系是平等的,彼此之间并不存在任何依赖,它们各自竞争CPU资源,互不相让,并且还无条件地阻止其他线程对共享资源的异步访问。然而,也有很多现实问题要求不仅要同步的访问同一共享资源,而且线...
分类:
编程语言 时间:
2014-11-23 22:57:08
阅读次数:
295
package com.huowolf;
/*死锁的含义:
* 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。
* 由于线程被无限期地阻塞,因此程序不能正常运行。
*
* 死锁出现的情形:同步中嵌套同步。
* 但也可能和谐
*
* 避免死锁的一个通用的经验法则是:
* 当几个线程都要访问共享资源A、B、C时,保证使每个线程都按照同样的顺序去访问它们,
* ...
分类:
编程语言 时间:
2014-11-16 18:47:28
阅读次数:
178