一、阻塞队列 1.介绍阻塞队列会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被阻塞的线程会自动被唤醒(不需要我们编写代码去唤醒)。 2.实现ArrayBlockingQueue:基于数组实现的一个阻塞队列,在创建ArrayBl ...
分类:
编程语言 时间:
2019-04-01 01:09:47
阅读次数:
177
原文:SQL Server查看索引重建、重组索引进度相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战。例如,你创建索引的时候,很多会话被阻塞,你只能... ...
分类:
数据库 时间:
2019-04-01 00:52:37
阅读次数:
274
当每0.01秒进行一次repeat操作时,NSTimer是不准的,严重滞后,而改成0.1秒repeat操作,则这种滞后要好一些。 导致误差的原因是我在使用“scheduledTimerWithTimeInterval”方法时,NSTimer实例是被加到当前runloop中的,模式是NSDefault ...
分类:
编程语言 时间:
2019-03-29 17:46:43
阅读次数:
167
问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状态。 而且,从程序日志中判断有线程处于夯住的状态,应该是被阻塞了。 问题排查 一开始找不到原因,怀疑是多线程并发导致的死锁问题,但是通过代码审查 ...
分类:
编程语言 时间:
2019-03-28 00:31:24
阅读次数:
655
1、任务队列 对于发送邮件或者是复杂计算这样的操作,常常需要比较长的时间,为了不影响web应用的正常使用,避免页面显示被阻塞,常常会将此类任务存入任务队列交由专门的进程去处理。 队列最基础的方法如下: 对于上述的策略,redis有更有一些的方法,即使用BRPOP命令 如果队列中没有元素,则会阻塞列表 ...
分类:
其他好文 时间:
2019-03-18 22:33:07
阅读次数:
225
Java 的线程支持提供了一些便捷的工具方法,通过这些便捷的工具方法可以很好地控制线程的执行。 join 线程 Thread 提供了让一个线程等待另一个线程完成的方法—— join() 方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被 join() 方法加入的 j ...
分类:
编程语言 时间:
2019-03-14 22:30:54
阅读次数:
199
以往常常使用 setTimeout 以及 setInterval 方法来制作 JavaScript 动画,但是这种方式制作的动画经常会由于计时器的特性而带来一些问题。简单地说一下,计时器动画有以下几个问题。 间隔时间不精确,可能被阻塞。计时器的间隔指的是将回调函数推入任务队列的间隔时间,任务队列中的 ...
分类:
其他好文 时间:
2019-03-09 23:40:16
阅读次数:
216
根据加锁的范围,MySQL的锁可以分为全局锁,表级锁和行锁。 1. 全局锁 MySQL提供了一个加全局读锁的方法,命令是:Flush tables with read lock(FTWRL),执行该命令以下语句会被阻塞:数据更新语句,数据定义语句和更新事务的提交语句。 1.1 使用场景 全局逻辑备份 ...
分类:
数据库 时间:
2019-02-26 23:36:53
阅读次数:
258
第一种: [self performSelector:@selector(run) withObject:nil afterDelay:2.0]; 第二种: [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selec ...
分类:
其他好文 时间:
2019-02-21 00:27:39
阅读次数:
198
1. ReentrantLock的介绍 ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。在java关键字synchronized隐式支持重入性(关于synchroni ...
分类:
其他好文 时间:
2019-02-21 00:18:17
阅读次数:
166