上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 32 下一页

2013年11月12日

控制线程顺序执行

摘要: Java Thread join() 的用法http://auguslee.iteye.com/blog/1292203http://blog.csdn.net/longronglin/article/details/2118670http://bianrongxin.iteye.com/blog/1356220 一个错误写法一种控制方法(类似于自定义信号量) http://www.blogjava.net/santicom/archive/2011/09/02/357783.html 阅读全文

posted @ 2013-11-12 00:46 heartstage 阅读(135) 评论(0) 推荐(0) 编辑

run()和start()的区别

摘要: run没有启新的线程,start方法才会调用Thread的native的start0方法,start0会调用run方法,开启新的线程,博主这么做,不是多线程顺序执行,而是把业务阻塞在主线程里。请打印:Thread.currentThread().getId(),会发现主线程ID和run里的ID是相同的;如果调用start方法,就不会相同了。开启新的线程不是run方法做的,是Thread的native方法start0做的,start0在底层请求JVM分配资源,然后start0会调用你重写的Runnable实例的run方法。Runnable是一个接口,这个接口只有一个方法run,Thread类就实 阅读全文

posted @ 2013-11-12 00:38 heartstage 阅读(739) 评论(0) 推荐(0) 编辑

2013年11月11日

JVM内存模型和性能优化

摘要: JVM内存模型优点内置基于内存的并发模型: 多线程机制同步锁Synchronization大量线程安全型库包支持基于内存的并发机制,粒度灵活控制,灵活度高于数据库锁。多核并行计算模型基于线程的异步模型。JVM性能的人为问题关键原因是:没有正确处理好对象的生命周期。需要从需求中找出存在自然边界的业务对象,将其对应落实到内存中,成为内存模型In-memory Domain Model。有大小边界限制的内存是缓存,没有永远使用不完的内存,缓存=“有边界的”内存。缓存是Domain Model对象缓存,不同于传统意义上数据库缓存的定义。分布式缓存可以提高巨量数据处理计算能力。Java内存种类Stac. 阅读全文

posted @ 2013-11-11 23:39 heartstage 阅读(470) 评论(0) 推荐(0) 编辑

10种不可以使用关系数据库的场景

摘要: 如何根据业务选择不同的技术架构,这是一个方向战略性问题,我在论支付宝与12306的业务类型可比性是从OO分析方式进行论证,但是更多时候我们很多人基本都是从关系数据库的设计开始项目的第一步,这篇文章:10件不可以使用关系数据库的场景:10 things never to do with a relational database | Application Development - InfoWorld也许能够对普通人起到方向提醒作用。大意翻译如下:1.搜索: 即使Oralce商店自己也不使用Oracle Text, 但是你会看到很多人使用复杂的like之类查询语句,这是非常丑陋的,兼容性相当差 阅读全文

posted @ 2013-11-11 23:12 heartstage 阅读(414) 评论(0) 推荐(0) 编辑

J2EE并发策略控制总结[zz]

摘要: 本文结合hibernate以及JPA标准,对J2EE当前持久层设计所遇到的几个问题进行总结:第一:事务并发访问控制策略 当前J2EE项目中,面临的一个共同问题就是如果控制事务的并发访问,虽然有些持久层框架已经为我们做了很多工作,但是理解原理,对于我们开发来说还是很有用处的。事务并发访问主要可以分为两类,分别是同一个系统事务和跨事务访问的并发访问控制,其中同一个系统事务可以采取乐观锁以及悲观锁策略,而跨多个系统事务时则需要乐观离线锁和悲观离线锁。在讨论这四种并发访问控制策略之前,先需要明确一下数据库事务隔离级别的问题,ANSI标准规定了四个数据库事务隔离级别,它们分别是: 读取未提交(Read 阅读全文

posted @ 2013-11-11 23:07 heartstage 阅读(225) 评论(0) 推荐(0) 编辑

Now Task

摘要: 1. Java 多线程 首先整理基本功,如线程的状态,和调度 多线程的经典例子,包括代码在内 多线程死锁的问题,要结合数据库的例子来整理 JDK1.5的若干要点 多线程的设计模式2. NIO 需要掌握基本的模型,以及和原IO的区别 以读取一个文本文件为例,掌握代码 和高并发有关吗?3. socket通信 起码要能说清和其他通信方式的区别 掌握一个http读数据的例子4. SOA SOA的概念,陈述 SOA在项目里的例子(是否有服务器端的?)5. 数据库事务,以及对应处理机制 事务的隔离性级别 Spring的传播性,以及? Oracle的锁机制,详细了解(SQLS... 阅读全文

posted @ 2013-11-11 02:09 heartstage 阅读(148) 评论(0) 推荐(0) 编辑

2013年11月10日

数据库的死锁及解决

摘要: deadlocks(死锁)所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程.由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。 一种情形,此时执行程序中两个或多个线程发生永久堵塞(等待),每个线程都在等待被其他线程占用并堵塞了的资源。例如,如果线程A锁住了记录1并等待记录2,而线程B锁住了记录2并等待记录1,这样两个线程就发生了死锁现象。计算机系统中,如 阅读全文

posted @ 2013-11-10 20:43 heartstage 阅读(378) 评论(0) 推荐(0) 编辑

Java小对象的解决之道——对象池(Object Pool)的设计与应用

摘要: 一、概述面向对象编程是软件开发中的一项利器,现已经成为大多数编程人员的编程思路。很多高级计算机语言也对这种编程模式提供了很好的支持,例如C++、Object Pascal、Java等。曾经有大量的软件工程师使用C语言作为他们的谋生工具,随着面向对象的深入人心,微软公司也对其C语言进行了扩充,形成了C++语言,全面支持面向对象的软件开发模式。“面向对象”的主角即是“对象”,其良好的可充用性和对数据逻辑的封装成了它在当今计算机软件开发领域一炮走红的主要因素。程序开发人员也正是利用了对象的这些特点在程序中大量创建对象,以至于他们往往忽略了这种创建对象以及以后销毁对象是带来的系统开销之大是多么不可想象 阅读全文

posted @ 2013-11-10 20:30 heartstage 阅读(4397) 评论(0) 推荐(0) 编辑

Java中的对象池技术

摘要: java中的对象池技术,是为了方便快捷地创建某些对象而出现的,当需要一个对象时,就可以从池中取一个出来(如果池中没有则创建一个),则在需要重复重复创建相等变量时节省了很多时间。对象池其实也就是一个内存空间,不同于使用new关键字创建的对象所在的堆空间。本文只从java使用者的角度来探讨java对象池技术,并不涉及对象池的原理及实现方法。个人认为,如果是真的专注java,就必须对这些细节方面有一定的了解。但知道它的原理和具体的实现方法则不是必须的。1,对象池中对象和堆中的对象public class Test{ Integer i1=new Integer(1); Integer i2=new 阅读全文

posted @ 2013-11-10 20:29 heartstage 阅读(2160) 评论(0) 推荐(0) 编辑

死锁活锁饥饿

摘要: 死锁定义:一组进程中的每一个进程,均无限期地等待此组进程中某个其他进程占有的,因而永远无法得到的资源,这种现象称为进程死锁。结论:参与死锁的进程至少有二个每个参与死锁的进程均等待资源参与死锁的进程中至少有两个进程占有资源;死锁进程是系统中当前进程集合的一个子集。在一个动态系统中,资源请求与释放是经常性发生的进程行为.对于每类系统资源,操作系统需要确定一个分配策略,当多个进程同时申请某类资源时,由分配策略确定资源分配给进程的次序。资源分配策略可能是公平的(fair),能保证请求者在有限的时间内获得所需资源;资源分配策略也可能是不公平的(unfair),即不能保证等待时间上界的存在。在后一种情况下 阅读全文

posted @ 2013-11-10 20:28 heartstage 阅读(1599) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 32 下一页

导航