首先,阻塞这个词来自操作系统的线程/进程的状态模型中,如下图 : 一个线程/进程经历的5个状态,创建,就绪,运行,阻塞,终止。各个状态的转换条件如上图,其中有个阻塞状态,就是说当线程中调用某个函数,需要IO请求,或者暂时得不到竞争资源的,操作系统会把该线程阻塞起来,避免浪费CPU资源,等到得到了资源 ...
分类:
其他好文 时间:
2018-09-22 00:59:08
阅读次数:
186
在介绍Java的阻塞队列之前,我们简单介绍一下队列。 队列 队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致线程阻塞.在多线程 ...
分类:
编程语言 时间:
2018-09-19 17:22:12
阅读次数:
189
`ANR 。在Android中,如果一些耗时操作造成主线程阻塞了一定时间,则系统会显示 提示用户此应用处于未响应的状态。 ANR ANR出现的原因 用户的输入在5s内没被App响应 BroadcastReceiver的onReceiver()超过10s Service中各生命周期函数执行超过20s ...
分类:
移动开发 时间:
2018-09-17 16:20:28
阅读次数:
308
什么是应用服务雪崩? 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应。 缓存雪崩 当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样 ...
分类:
其他好文 时间:
2018-09-14 23:09:58
阅读次数:
274
看了很多文档,就简书说的最好。 关键词: 无竞争等待、同步机制(类似ABCABCABC)、条件变量不是锁、线程阻塞。 概念 线程同步的方法有多种,互斥量、信号量、条件变量、读写锁等。互斥量在允许或阻塞对临界区的访问上是很有效的,线程是在对已加锁的互斥量加锁时发生阻塞;条件变量则允许线程由于一些未达到 ...
分类:
其他好文 时间:
2018-09-11 11:18:31
阅读次数:
163
线程与进程的区别: 注意: 在pychon中 算法类的运算变成 使用进程会更好. 因为pychon中有个GIL:全局解释锁(只有C语言编写的pychon解释器才有.(Cpychon)) 对于线程来说, 因为有了GIL, 所以没有真正的并发. 线程有分为用户级线程和内核级线程.(了解) 用户级线程: ...
分类:
编程语言 时间:
2018-08-26 22:07:24
阅读次数:
193
1、并发编程 并发通常能提高单处理器的程序性能。可是,看到这句话有些违背直觉。多线程的运行增加了线程间切换的开销,仅仅从这个角度看,单线程运行总比多线程的性能好。但是,程序的阻塞会使得结果不一样,当某个线程阻塞时候,其它线程仍然可以执行,因此程序仍保持运行。充分利用cpu的时间提高的性能远大于线程间 ...
分类:
编程语言 时间:
2018-08-12 17:28:45
阅读次数:
132
本文是承接上一篇文章:JAVA多线程知识总结(一) 四.Java多线程的阻塞状态与线程控制 上文已经提到线程阻塞的集中具体类型。下面主要看引起JAVA线程阻塞的方法 1,join() 让一个线程等待另一个线程完成之后才继续执行,如A线程的执行体中调用B线程的join方法,则A线程被阻塞,知道B线程执 ...
分类:
编程语言 时间:
2018-08-05 17:02:32
阅读次数:
165
1 数据库的 update 在修改这条数据的的过程中(这个过程指的是 数据库执行update 到 事务提交的过程中 )为这条数据加上 写锁,阻止 别的事务 对锁定数据的修改,请求后一个修改事务的线程阻塞,直到前一个事务的完成,所以针对这条数据的 2 个修改 是一个一个来的。所以 数据库的 updat ...
分类:
数据库 时间:
2018-07-31 23:29:25
阅读次数:
470
[TOC] LockSupport源码分析 LockSupport是Java6引入的一个工具类, 用于挂起和唤醒线程; LockSupport 通过提供park() 和 unpark() 方法实现阻塞线程和解除线程阻塞, 实现阻塞与解除阻塞是基于许可(permit), permit相当于一个信号量, ...
分类:
其他好文 时间:
2018-07-27 01:29:30
阅读次数:
311