在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个用户并发性访问带来的数据的安全性,完整性及一致性问题,必须要有一种机制,来使对这些共享资源的并发性访问串行化,oracle中的锁就可以提供这样的功能,当事务在对某个对象进行操作前,先向系统发出请求,对其加相应的锁,加锁后该事务就对该数据对象有了一定的控制权限,在该事务释放锁之前,其
分类:
数据库 时间:
2018-01-27 19:02:52
阅读次数:
238
Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。 了解volatile关键字之前需要先了解下Java内存模型,java内存模型抽象示意图如下: Java内存模型 线程A和线程B之 ...
分类:
编程语言 时间:
2018-01-16 18:09:31
阅读次数:
159
在局域网访问共享文件时,有时候我们需要切换访问用户,便于获得对共享文件访问的不同权限。但是,由于windows操作系统为了方便用户访问共享,提供了用户信息和共享会话记忆功能,使得当用户访问共享文件时,会自动按照用户以前访问共享时的账号密码自动通过验证,而无需再次输入账号密码。这样,当用户想切换用户访 ...
分类:
其他好文 时间:
2018-01-08 18:42:12
阅读次数:
163
1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock ...
分类:
编程语言 时间:
2018-01-06 22:16:00
阅读次数:
236
linux进程间的IPC机制 共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在该进程的地址空间(这里的地址空间具体是哪个地方?)中。其他进程可以将同一段共享内存连接到自己的地址空间中。所有进程都可以访问共享内存中的地址,就好像它们 ...
分类:
其他好文 时间:
2017-12-31 12:59:25
阅读次数:
216
Lock锁 锁是用来控制多个线程访问共享资源的方式。 一般来说一个锁可以防止多个线程同时访问共享资源(但有些锁可以允许多个线程访问共享资源,如读写锁)。 在Lock接口出现前,java使用synchronized关键字实现锁的功能,但是在javaSE5之后,并发包中提供了Lock接口(以及其实现类) ...
分类:
编程语言 时间:
2017-12-29 15:06:16
阅读次数:
219
一 线程间同步 同步:相互之间配合完成一件事情 互斥:保证访问共享资源的完整性(有你没我) POSIX 线程中同步:使用信号量实现 信号量 : 表示一类资源,它的值表示资源的个数 对资源访问: p操作(申请资源) [将资源的值 - 1] .... V操作(释放资源) [将资源的值 + 1] 1.定义信号量 sem_t sem ; 2.初始化信号量 int sem_ini
分类:
系统相关 时间:
2017-12-24 18:40:47
阅读次数:
185
信号量与互斥体 互斥体(Mutex)是操作系统中一种独占访问共享资源的机制。它像一把所锁,哪个线程获取到互斥体的控制权,则可以访问共享的资源,或者执行处于受保护的代码。而其他的线程如果也想获取控制权,则需要要阻塞等待,知道拥有控制权的线程释放控制权。 信号量(Semaphore)是操作系统中协调多个 ...
分类:
其他好文 时间:
2017-12-13 00:02:27
阅读次数:
223
一、什么是优先级翻转问题 所谓优先级翻转问题(Priority Inversion)即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级任务抢先,因此造成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得到 ...
分类:
编程语言 时间:
2017-12-08 21:03:02
阅读次数:
235
刚刚创建了NFS的服务,发现客户端通过网络把共享文件挂载在本地文件来访问共享文档,所以需要把挂载信息写入到/etc/fstab中,这样远程共享资源就会随着服务器开机而进行自动挂载。 虽然很方便,但是也会有些问题: 1,如果挂载的远程资源太多,则会给网络和服务器
分类:
其他好文 时间:
2017-12-08 18:36:32
阅读次数:
147