1.公平锁与非公平锁 公平锁:指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来依次获得锁。 优点:等待锁的线程不会饿死。缺点:整体效率相对较低。 非公平锁:可以抢占,即如果在某个时刻有线程需要获取锁,而这个时候刚好锁可用,则该线程会直接抢占,而这时阻塞在等待队列的线程不会被唤醒。 默认实现的是 ...
分类:
编程语言 时间:
2019-06-30 20:32:29
阅读次数:
132
前言 我的上一篇博客的案例中,请求锁的线程如果发现锁已经被其他线程占用,它是通过自旋的方式来等待的,也就是不断地尝试直到成功。本篇就讨论一下另一种方式,那就是挂起以等待唤醒。 注:相关代码都来自《Operating System: Three Easy Pieces》这本书。 自旋哪里不好? 先说明 ...
分类:
其他好文 时间:
2019-06-30 11:13:12
阅读次数:
124
printk 函数将消息写入一个 LOG_BUF_LEN 字节长的环形缓存, 长度值从 4 KB 到 1 MB, 由配置内核时选择. 这个函数接着唤醒任何在等待消息的进程, 就是说, 任何在系统 调用中睡眠或者在读取 /proc/kmsg 的进程. 这 2 个日志引擎的接口几乎是等同的, 但 是注意 ...
分类:
其他好文 时间:
2019-06-29 14:48:50
阅读次数:
106
原文:https://www.cnblogs.com/qingquanzi/p/8228422.html 本篇是《自己动手写把"锁"》系列技术铺垫的最后一个知识点。本篇主要讲解LockSupport工具类,它用来实现线程的挂起和唤醒。 LockSupport是Java6引入的一个工具类,它简单灵活, ...
分类:
其他好文 时间:
2019-06-29 14:40:28
阅读次数:
95
本文首次发布于2017年5月5日 NAS的设置 在NAS里,在设置里开启网络唤醒的功能,这个是必须的,但是这样开启后,内网可以唤醒,外网不行,于是接下来看 路由器的设置 路由器很重要的一点就是ARP绑定,因为端口映射需要MAC地址,所以ARP绑定必须把NAS的地址和MAC地址进行绑定,这也试试完成了 ...
分类:
其他好文 时间:
2019-06-29 01:19:50
阅读次数:
150
1、在 STM32F4 中,有 5 个最重要的时钟源,为 HSI、HSE、LSI、LSE、PLL。其中 PLL 实际是分为两个时钟源,分别为主 PLL 和专用 PLL。 2、 ①、LSI 是低速内部时钟,RC 振荡器,频率为 32kHz 左右。供独立看门狗和自动唤醒单元使用。 ②、LSE 是低速外部 ...
分类:
其他好文 时间:
2019-06-27 00:29:39
阅读次数:
97
线程间通信: 多个线程在处理同一资源,但是 等待唤醒机制 涉及的方法: 1、wait() 让线程处于冻结状态,被wait的线程会被存储到线程池中。 2、notify() 唤醒线程池中的一个线程(任意) 3、notifyAll() 唤醒线程池中的所有线程、、 这些方法都必须定义在同步中, 因为这些方法 ...
分类:
编程语言 时间:
2019-06-22 01:27:21
阅读次数:
137
使用微信打开网址时,无法在微信内打开常用下载软件,手机APP等。网上流传的各种微信打开下载链接,微信一更新基本失效。大家常用的方法是,弹出一个遮罩提示用户在新的浏览器窗口打开,再也不用管微信如何的更新。 直接判断微信的ua,如果是在微信内置浏览器中打开,弹出一个遮罩提示用户在浏览器中打开下载,并且不 ...
分类:
移动开发 时间:
2019-06-21 22:28:18
阅读次数:
197
问题起源 事情得从一个多线程编程里面臭名昭著的问题"Lost wake-up problem"说起。 这个问题并不是说只在Java语言中会出现,而是会在所有的多线程环境下出现。 假如我们有两个线程,一个消费者线程,一个生产者线程。生产者线程的任务可以简化成将count加一,而后唤醒消费者;消费者则是 ...
分类:
编程语言 时间:
2019-06-19 23:30:51
阅读次数:
307
如果一个线程从头到尾执行完也不和别的线程打交道的话,那就不会有各种安全性问题了。但是协作越来越成为社会发展的大势,一个大任务拆成若干个小任务之后,各个小任务之间可能也需要相互协作最终才能执行完整个大任务。所以各个线程在执行过程中可以相互 ,所谓 就是指相互交换一些数据或者发送一些控制指令,比如一个线 ...
分类:
其他好文 时间:
2019-06-19 18:29:40
阅读次数:
78