Java线程是一项非常基本和重要的技术,在偏底层和偏技术的Java程序中不可避免地要使用到Java多线程技术,那么数据的共享也就是我们必须考虑的问题之一,自然我也就会想到ThreadLocal和synchronized。
ThreadLocal使用场合主要解决多线程中数据因并发产生不一致问题。ThreadLocal为每个线程中并发访问的数据提供一个副本,通过访问副本来运行业务,这样...
分类:
其他好文 时间:
2014-12-07 23:21:54
阅读次数:
243
一、业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长。特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成数据访问服务的失效,从而导致网站....
分类:
数据库 时间:
2014-12-01 00:36:26
阅读次数:
373
通过《linux内核并发基本概念》,我们看到了,对于并发访问共享资源,造成的运行结果与预期的不一致问题,这样的结果是软件设计者不能允许的。我们知道,我们编写一个软件一定是需要软件实现特定的功能,如果我们在设计的时候,期望得到结果A,但实际软件运行中却得到的结果B,那么这个软件是相当糟糕的,因此,对于并发引起的竞态,是我们在设计内核和驱动软件时,必须要留意的。
在《linux内核并发基本概念》中,...
分类:
系统相关 时间:
2014-11-30 23:27:10
阅读次数:
414
生产者和消费者是多线程经典的问题,生产者和消费者问题的核心是同步的问题,同步问题的核心是要保证同一个资源被多个线程并发访问时的完整性,常用的方法是采用信号或加锁机制,保证资源在任一时刻只能被一个线程访问。这一问题用java来实现的话主要有4种方式。1.wait()/notify();2.await()/signal(); 3.blockingQuene 4.PipedInputStream/pip...
分类:
编程语言 时间:
2014-11-29 20:16:12
阅读次数:
202
当我们用IIS服务器部署了一个web应用以后,当很多用户高并发访问的时候,客户端响应就会很慢,客户的体验就会很差,由于IIS接受到客户端请求的时候,就会创建一个线程,当线程达到几千个时候,这些线程就会占用较大内存,同时由于这些线程要进行切换,所以CPU占用也会比较高,这样IIS性能就很难提高了。那么如何解决这个问题呢?为了解决这个高并发的问题,我们就需要进行负载均衡。我们可以在架构上通过硬件和软件来解决负载均衡,硬件层面可以使用负载均衡器,一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵,常见...
分类:
Web程序 时间:
2014-11-29 18:59:53
阅读次数:
183
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而...
分类:
数据库 时间:
2014-11-28 14:17:24
阅读次数:
414
在这里写这种文章好奇怪,先用作笔记吧Java中有如下的方法来处理代码块的并发访问问题:一是关键字synchronized二是加锁(锁对象,条件对象)Java给每一个对象都提供了一个内部锁,在方法的定义中加上关键字synchronized后,那么对象的锁将保护整个方法。也就是说下面两种写法是等价的:p...
分类:
编程语言 时间:
2014-11-26 13:47:15
阅读次数:
137
如何解决系统中可能存在的性能问题呢?首先,我们需要清楚在业务上有什么要样的性能需求;第二步,根据性能的要求去考虑系统的设计,第三步,系统的开发过程中去关注可能存在的局部性能问题。评估系统的性能要求:没有开发过性能敏感系统的团队,容易犯的错误是,不去考虑系统将来有多少人使用,并发访问有多高,需要存贮多...
分类:
Web程序 时间:
2014-11-25 12:08:18
阅读次数:
239
在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock。ConditionCondition将Obj...
分类:
编程语言 时间:
2014-11-21 15:56:01
阅读次数:
320
五.共享内存(shared memory)共享内存映射为一段可以被其他进程访问的内存。该共享内存由一个进程所创建,然后其他进程可以挂载到该共享内存中。共享内存是最快的IPC机制,但由于linux本身不能实现对其同步控制,需要用户程序进行并发访问控制,因此它一般结合了其他通信机制实现了进程间的通信,例...
分类:
系统相关 时间:
2014-11-17 17:13:51
阅读次数:
415