1.是否发动请求数太多导致tcp请求进入等待队列了?解决:netstat查看程序的TCP/IP连接情况,是否很多请求处于time-wait情况。如果是这个情况,则可以添加TOmcat数量,利用Nginx负载均衡解决 2.如上述条件发现请求连接不多, 下一步查看是否是应用程序内存使用情况,服务器的cp ...
分类:
其他好文 时间:
2016-11-13 07:42:37
阅读次数:
158
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchroniz ...
分类:
编程语言 时间:
2016-11-08 16:46:42
阅读次数:
256
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchroniz ...
分类:
编程语言 时间:
2016-11-03 18:19:26
阅读次数:
223
刚开始学习操作系统的时候,就听说PV操作,简单说说PV操作。 ● P(S): S=S-1 如果S≥0,则该进程继续执行; S<0,进程暂停执行,放入信号量的等待队列 ● V(S): S=S+1 如果S>0,则该进程继续执行; S≤0, 唤醒等待队列中的一个进程 到底怎么分析,下面看看一个具体的问题: ...
分类:
其他好文 时间:
2016-11-01 09:45:44
阅读次数:
235
1.定义并初始化一个等待队列头:DECLARE_WAIT_QUEUE_HEAD(wait_que); wait_queue_head_t wait_que;init_waitqueue_head( &wait_que); 2.简单休眠:wait_event(wait_que, condition)w ...
分类:
其他好文 时间:
2016-10-11 14:13:41
阅读次数:
168
阻塞是指执行设备操作时,不能获得 资源,则挂起进程直到满足可操作的条件在进行操作。 非阻塞是在进程不能进行设备操作时,并不挂起,要么放弃、要么不停的查询,直到进行操作为止。 等待队列; typedef struct _wait_queue_head wait_queue_head_t; 1.定义等待 ...
分类:
其他好文 时间:
2016-10-07 20:34:09
阅读次数:
123
阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生 ...
分类:
其他好文 时间:
2016-09-27 16:20:52
阅读次数:
129
在调用await()方法前线程必须获得重入锁(第17行代码),调用await()方法后线程会释放当前占用的锁。同理在调用signal()方法时当前线程也必须获得相应重入锁(代码32行),调用signal()方法后系统会从condition.await()等待队列中唤醒一个线程。当线程被唤醒后,它就会... ...
分类:
编程语言 时间:
2016-09-23 11:24:33
阅读次数:
255
独占锁 -- 锁在一个时间点只能被一个线程锁占有。根据锁的获取机制,它又划分为“公平锁”和“非公平锁”。公平锁,是按照通过CLH等待线程按照先来先得的规则,公平的获取锁;而非公平锁,则当线程要获取锁时,它会无视CLH等待队列而直接获取锁。独占锁的典型实例子是ReentrantLock,此外,Reen... ...
分类:
编程语言 时间:
2016-09-21 22:47:48
阅读次数:
124
经典模式:生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队 ...
分类:
编程语言 时间:
2016-08-23 20:26:49
阅读次数:
208