1、饿汉式:静态常量 特点:单例的实例被声明成static和final变量了,在第一次加载类到内存中时就会初始化,所以会创建实例本身是线程安全的 2、懒汉式:线程不安全 特点:使用了懒加载模式,但是却存在致命的问题。当多个线程并行调用getInstance()的时候,就会创建多个实例,即在多线程下不 ...
分类:
其他好文 时间:
2018-03-14 15:04:05
阅读次数:
176
协程 :是单线程下的并发,又称微线程。 什么是线程?: 协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 协程的本质 协程的本质就是在单线程下,由用户自己控制一个任务遇到io阻塞了就切换另外一个任务去执行,以此来提升效率 对于不涉及io的操作,单纯的切换反而会降低效率 总结协程的优缺 ...
分类:
编程语言 时间:
2018-03-11 20:55:10
阅读次数:
189
主要知识点 悲观锁的简要说明 全局锁实验 全局锁的优缺点及适用场景 一、悲观锁的简要说明 悲观锁不象悲观锁那样基于version进行并发控制,而是直接加锁,加锁后只有加锁的线程可以使用该index(或type),其他线程不同同时使用,只有当这个线程解锁之后,其他线程才能恢复使用,本节合文件系统建模的... ...
分类:
其他好文 时间:
2018-03-11 00:10:49
阅读次数:
148
1、很多时候从别的机器上拷贝过来的文件,没有权限打开,上面有一个小锁。 2、判断是权限没有,查询ls al得知文件的的所有者,和所有者在的组都不是本机 3、使用chown改变用户的所有者和所有者所在的组 4、用法:chown 所有者:所有者所在的组 文件名 ...
分类:
系统相关 时间:
2018-03-10 14:00:04
阅读次数:
1022
10 避免活跃性 在安全性与活跃性之间通常存在着某种制衡。例如加锁导致死锁,或者使用线程池和信号量来限制对资源的使用,但这些被限制的行为可能会导致资源死锁。、 10.1 死锁 当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞。 10.1.1 锁顺序死锁 如果用固定的顺... ...
分类:
其他好文 时间:
2018-03-10 13:58:31
阅读次数:
137
tasklet(小任务)一个使用tasklet的中断程序首先会通过执行中断处理程序来快速完成上半部分的工作,接着通过调度tasklet使得下半部分的工作得以完成,但是下半部分何时执行属于内核的工作。tasklet定义在linux/interrupt.h中,实现在kernel/softirq.c中。s ...
分类:
其他好文 时间:
2018-03-10 13:54:31
阅读次数:
178
NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。 HOLDLOCK(保持锁) 此选项被选中时,SQL Se ...
分类:
其他好文 时间:
2018-03-08 17:19:28
阅读次数:
129
互斥量(mutex)从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其他试图再次对互斥锁加锁的线程将会阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为运行状态的线程可以 ...
分类:
其他好文 时间:
2018-03-05 23:34:57
阅读次数:
263
一 互斥锁 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如下 结果是: 如何控制,就是加锁处理。而互斥锁的意思就是互相排斥,如果把多个进程比喻为多个人,互斥锁的工作原理就是多个人都要去争抢同一个资源:卫生 ...
分类:
编程语言 时间:
2018-03-05 22:26:13
阅读次数:
160
一个线程使用自己的局部变量比使用全局变量好局部变量只有线程自己能看见,不会影响其他线程全局变量的修改必须加锁 ThreadLocal 线程局部变量 import threading # 创建全局ThreadLocal对象:local_school = threading.local() def pr ...
分类:
编程语言 时间:
2018-03-03 23:30:17
阅读次数:
238