EXTI 简介 EXTI(External interrupt/event controller) —外部中断/事件控制器, 管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI 可以实现对每个中断/事件线进行单独配置,可 ...
分类:
其他好文 时间:
2018-04-21 17:34:03
阅读次数:
283
Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过syn ...
分类:
编程语言 时间:
2018-04-15 22:53:36
阅读次数:
155
线程安全: 线程安全是多线程访问时,采用加锁的机制,当一个线程访问该类的某个数据时进行保护,其他线程不能访问,直到该线程读取完成,其他线程才可以使用。不会出现数据不一致和数据污染。线程 不安全就是不提供数据保护,可能出现多个线程先后更改数据造成所得数据是脏数据。 C# 实现线程安全的两种方式 1.使 ...
分类:
编程语言 时间:
2018-04-07 17:47:11
阅读次数:
152
一、什么是线程 线程是进程内的执行单元。 二、线程的基本操作 2.1 状态与操作 2.2 新建线程 2.3 终止线程 2.4 中断线程 代码 sleep代码 2.5 挂起和继续执行线程 suspend()不会释放锁 如果加锁发生在resume()之前,则发生死锁 这两个就法不推荐使用 模拟死锁: 分 ...
分类:
编程语言 时间:
2018-04-05 11:41:16
阅读次数:
272
如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。以下是详细的唤醒方法: 1.sleep()方法 sleep(毫秒),指定以毫秒为单位的时间,使线程在该时间内进入线程阻塞状态,期间得
分类:
编程语言 时间:
2018-04-02 16:34:54
阅读次数:
220
如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。以下是详细的唤醒方法: 1.sleep()方法 sleep(毫秒),指定以毫秒为单位的时间,使线程在该时间内进入线程阻塞状态,期间得
分类:
编程语言 时间:
2018-04-02 16:32:36
阅读次数:
133
一、运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区 1.1 程序计数器 程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变 ...
分类:
编程语言 时间:
2018-04-02 16:03:26
阅读次数:
175
浅析Python多线程 阅读目录 1 线程的基本操作 2 线程锁和一个怪象 3 递归锁 4 GIL 5 判断线程状态 6 Condition对象 7 信号量 8 Barrier对象 9 线程间通信 10 线程池 11 小结与讨论 学习Python多线程的资料很多,吐槽Python多线程的博客也不少。 ...
分类:
编程语言 时间:
2018-03-28 18:45:20
阅读次数:
251
Reids复制数据主要有2种场景: 1. 从服务器从来第一次和当前主服务器连接,即初次复制 2. 从服务器断线后重新和之前连接的主服务器恢复连接,即断线后重复制 对于初次复制来说使用SYNC命令进行全量复制是合适高效的,但是对于断线后重复制来说效率就不太能接受了。举例来说: 如图所示,Master在 ...
分类:
其他好文 时间:
2018-02-28 11:57:28
阅读次数:
210
如果你想卸载一个挂载点,但是一直有人在用。可以查出来是谁在用。看到是谁占用文件系统了吧还可以使用fuser-v命令可以使用fuser-km/mount-test踢掉占用文件系统的用户或者进程。踢掉的用户会自动断线一次。
分类:
系统相关 时间:
2018-02-25 01:15:18
阅读次数:
244