1.新建状态:new Thread()。 2.可运行状态: thread.start() , 用户输入结束,sleep结束,join线程结束,时间片用完,thread.yield()拿到锁的对象标记。 3.阻塞状态: 等待用户输入,sleep开始,线程join 4.运行中:os调度 5.结束:run ...
分类:
编程语言 时间:
2017-09-21 19:20:26
阅读次数:
193
1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 ...
分类:
编程语言 时间:
2017-09-12 12:03:47
阅读次数:
252
进程的基本状态: 从原理上讲,进程的基本状态有3个:1) 运行:某个CPU空闲,该CPU对应的等待队列中的其中一个就绪态进程就得以调度。2) 就绪:资源已就绪,只等CPU空闲。或者时间片用完,被加入队尾等待调度。3) 阻塞:资源不满足,而被暂时挂起的状态,比如IO阻塞。也称为等待或睡眠状态。 Lin ...
分类:
系统相关 时间:
2017-09-09 19:37:55
阅读次数:
150
转载请注明源出处:http://www.cnblogs.com/lighten/p/7493735.html 1.前言 本章介绍阻塞队列DelayQueue,这是一个无界阻塞队列。其存储延时的元素,只有延时耗尽元素才能被取出。队列头元素就是最先耗尽延时的元素,如果没有元素耗尽延时,poll操作会返回 ...
分类:
编程语言 时间:
2017-09-08 13:19:26
阅读次数:
259
基于AQS的锁(比如ReentrantLock)原理大体是这样:有一个state变量,初始值为0,假设当前线程为A,每当A获取一次锁,status++. 释放一次,status--.锁会记录当前持有的线程。当A线程拥有锁的时候,status>0. B线程尝试获取锁的时候会对这个status有一个CA ...
分类:
其他好文 时间:
2017-09-08 11:37:29
阅读次数:
134
生产者与消费者一、明确定义 要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S?0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S ...
分类:
其他好文 时间:
2017-08-23 19:10:13
阅读次数:
98
前方 并发跟压力和负载这三个前面介绍了,不多讲了 事务 性能测试当中,事务指的是端到端,就好比:一次登录,一次支付 吞吐量 这词估计大多都听过吧,就是指一次测试过程中网络上传输的数据量的总和,也可以这样说客户端与服务器端进行的数据交互总量 ①上升阶段:吞吐量随着负载的增加而增加,吞吐量和负载成正比; ...
分类:
其他好文 时间:
2017-08-23 00:49:39
阅读次数:
117
1、同步(synchronous)和异步(asynchronous) 同步和异步是对方法的调用而言的 同步:提交请求->等待服务器处理->处理完毕返回 ; 这个期间客户端浏览器不能干任何事 异步: 请求通过事件触发->服务器处理(这时候浏览器仍然可以作其他事情)->处理完毕 (异步调用方法后返回很快 ...
分类:
其他好文 时间:
2017-08-13 14:19:36
阅读次数:
177
以下为部分优化参数,具体优化方法还要看情况而定 [root@localhost ~]# vi /etc/sysctl.conf #末尾添加如下参数 net.ipv4.tcp_syncookies = 1 #1是开启SYN Cookies,当出现SYN等待队列溢出时,启用Cookies来处,理,可防范 ...
分类:
其他好文 时间:
2017-08-07 10:12:26
阅读次数:
179
获取非公平锁(基于JDK1.7.0_40) 非公平锁和公平锁在获取锁的方法上,流程是一样的;它们的区别主要表现在“尝试获取锁的机制不同”。简单点说,“公平锁”在每次尝试获取锁时,都是采用公平策略(根据等待队列依次排序等待);而“非公平锁”在每次尝试获取锁时,都是采用的非公平策略(无视等待队列,直接尝 ...
分类:
编程语言 时间:
2017-08-03 00:56:43
阅读次数:
212