最近和同事一起看Web的Cache问题,又进一步理解了 HTTP 中的 304
又有了一些了解。 304 的标准解释是:Not Modified
客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文...
分类:
其他好文 时间:
2014-05-26 16:34:36
阅读次数:
238
当代并行机系统共享存储多处理机系统--------- 对称多处理机SMP结构特性SMP:
采用商用微处理器,通常有片上和片外Cache,基于总线连接,集中式共享存储,UMA结构. 优点对称性: 任何处理器均可访问任何存储单元和I/O设备单地址空间:
易编程性,动态负载平衡,无需显示数据分配高速缓存及...
分类:
其他好文 时间:
2014-05-23 02:43:46
阅读次数:
254
进程(Process)和线程(Thread)是程序运行的两个基本单元。Java并发编程更多的是和线程相关。
进程
进程是一个独立的执行单元,可将其视为一个程序或应用。然而,一个程序内部同事还包含多个进程。Java运行时环境就是一个单独的进程,在它内部还包含了作为进程的各种类和程序。
线程
可以将线程看做轻量级的进程。线程存在于进程当中,需要的资源开销较小。同一进程中的线程共...
分类:
编程语言 时间:
2014-05-23 00:16:01
阅读次数:
372
Linux系统通过软限制和硬限制,制约了打开文件的最大个数,而且每个端口侦听的连接数受限于/etc/sytctl.conf中的ip_local_port_range的范围,那么nginx是如何做到轻量级和高并发的。
Nginx的进程模型
各个work进程间通过accept_mutex互斥锁进行连接的获取,以防止惊群现象的发生(即所有进程都收到通知,却...
分类:
其他好文 时间:
2014-05-22 17:11:39
阅读次数:
364
1. 进程调度the process scheduler is the component of a
kernel that selects which process to run next.进程调度器需要使 处理器使用率最大化,并且提供
使多个进程并发执行的虚拟Deciding which pr...
分类:
系统相关 时间:
2014-05-22 16:07:11
阅读次数:
505
Subsections
线程安全(Thread safety)
锁(lock)
共享对象
对象组合
基础构建模块
任务执行
取消和关闭
线程池的使用
性能与可伸缩性
并发程序的测试
显示锁
原子变量和非阻塞同步机制
一、线程安全(Thread safety)
无论何时,只要多于一个线程访问给定的状态变量。而且其中某个线程会写入该变量,此时必须使用同...
分类:
编程语言 时间:
2014-05-21 17:11:45
阅读次数:
500
ReentrantReadWriteLock是一个读写锁,它提供了一个读锁和一个写锁,读锁用于只读操作,而写锁用于写入操作,读操作可以并行进行,而写操作则是互斥的。读锁和写锁的分离在一些写少读多的应用中可以带来性能上的提升,例如:一个hashmap在构造之后很少修改,却经常进行查找操作,这样查找操作就可以并发进行从而提高性能。这篇文章首先为你介绍读写锁的基本特性,在具体应用中需要解决的问题,然后介...
分类:
其他好文 时间:
2014-05-21 16:09:03
阅读次数:
304
问题:
我们用lvs做了负载均衡,使用了两台服务器做login的服务,以及二次资源下载服务。但是在推广过程中,陆续有人反映服务器登录困难。
解决过程:
1、首先我们查看流量日志以及服务器cpu与内存使用情况,发现每隔一段时间流量以及cpu使用情况都会急剧下降一次。而且两台登录服务器会循环出现连接不上的情况。查看lvs message日志 /var/log/message
l...
分类:
其他好文 时间:
2014-05-21 11:27:18
阅读次数:
303
现在的服务器支撑上百万个并发 TCP 连接已经不是新闻。实现 C1000k 的常规做法是调整内核参数,提高文件数,降低每个连接的内存消耗。 在今年的 BSDCan2014 会议上, Patrick Kelsey 介绍了把 FreeBSD 9.x 的 TCP/IP 协议栈移植到了用户态,并用于 WANProxy 项目。在用户态运行 TCP/IP 协议栈意味着并发 TCP 连接不再占用系统文件数,只占内存,解决了 C1000k 的一大瓶颈,...
分类:
其他好文 时间:
2014-05-21 11:06:52
阅读次数:
453
当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_semaphore.
信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大...
分类:
其他好文 时间:
2014-05-21 09:51:27
阅读次数:
258