设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()。 一个进程进入了临界区,另一个进程等待 没有一个进程进入临界区 两个进程都进入临界区 两个进程都在等待 互斥信号量不采用自旋锁的方式实现,mutex初始值为1,当一个准备进入临界区时,mutex - 1 = 0,该进 ...
分类:
系统相关 时间:
2019-12-02 23:18:33
阅读次数:
129
一、自旋锁与自适应自旋 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。 让后面请求锁的那个线程“稍等一下”,但不放弃处理器的执行时间,看看持有锁的线程是否很快就会释放锁。为了让线程等待,我们只需让线程执行一个忙循环(自 ...
分类:
其他好文 时间:
2019-12-02 01:11:40
阅读次数:
157
死锁:指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 此程序的两个线程会因为互相等待对方的互斥锁而陷入等待,最后由于主线程执行完毕而结束了各个子 ...
分类:
编程语言 时间:
2019-11-30 19:29:42
阅读次数:
91
通过前面对 线程互斥锁lock / 线程事件event / 线程条件变量condition / 线程定时器timer 的讲解,相信你对线程threading模块已经有了一定的了解,同时执行多个线程的确可以提高程序的效率,但是并非线程的数量越多越好,可能对于计算机而言,你直接运行20~30线程可能没太 ...
分类:
编程语言 时间:
2019-11-30 12:10:49
阅读次数:
106
达梦数据库的备份还原方式:物理备份还原和逻辑备份还原
物理备份:
冷备:(dmap服务打开的状态下,数据库是关闭的)
热备:(dmap服务一定是打开的,数据库是打开的,数据库要开归档)
物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。
逻辑备份:
导出:dexp
导入:dimp
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
? 数据库级(FULL):导出或导入整个数据库中的所有对象。
? 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
? 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
? 表级(TABLE):导出或导入一个或多个指定的表或表分区。
分类:
数据库 时间:
2019-11-29 01:00:07
阅读次数:
965
一、概念 是利用锁的机制来实现同步的。 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。 可见性:必须确保在锁被释放之前,对共享变量所做的 ...
分类:
其他好文 时间:
2019-11-28 01:24:31
阅读次数:
82
在前一篇文章 python线程创建和传参 中我们介绍了关于python线程的一些简单函数使用和线程的参数传递,使用多线程可以同时执行多个任务,提高开发效率,但是在实际开发中往往我们会碰到线程同步问题,假如有这样一个场景:对全局变量累加1000000次,为了提高效率,我们可以使用多线程完成,示例代码如 ...
分类:
编程语言 时间:
2019-11-27 01:06:11
阅读次数:
81
1,为啥需要自旋锁 很多时候我们并不能采用其他的锁,比如读写锁、互斥锁、信号量等。一方面这些锁会发生上下文切换,他的时间是不可预期的,对于一些简单的、极短的临界区完全是一种性能损耗;另一方面在中断上下文是不允许睡眠的,除了自旋锁以外的其他任何形式的锁都有可能导致睡眠或者进程切换,这是违背了中断的设计 ...
分类:
其他好文 时间:
2019-11-26 13:29:23
阅读次数:
72
接口中固有竞争基本上因为锁定的粒度过小而引起,保护没有覆盖期望的操作的整体。 互斥元的问题也可以由锁定的粒度过大导致并发优势全无,因为线程一次只能过一个,即使它们访问的不是同一个数据。 linux的内核第一个版本就是使用了单个全局内核锁,虽然这样也能工作,但是可能导致双核处理器没有两个单个处理器效率 ...
分类:
其他好文 时间:
2019-11-23 09:40:38
阅读次数:
72
为了提高性能,Java提供了读写锁,读写锁分为读锁和写锁。多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥,这是由JVM控制的。如果没有写锁的情况下,读是无阻塞的,在一定程度上提高了程序的执行效率。 读锁 如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁。 写锁 如果你的代码修改数据, ...
分类:
其他好文 时间:
2019-11-22 13:57:53
阅读次数:
65