- 博客(10)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 Java多线程研究06-带返回值的线程定义接口Callable以及Future,FutureTask的使用
带返回值的CallableJAVA线程相关的Runnable接口中的run()方法没有提供返回值,如下:......public void run() { ......}......如果需要在线程A执行完成,得到返回值后,再继续执行某个业务。那么推荐使用JDK1.5中提供的带有“执行返回值”的线程定义接口:Callable。如果还需要为多个线程的执行调度加入更复杂的控制逻辑,那么需要我
2016-07-25 17:56:43 4314
原创 Java多线程研究05-ThreadPoolExecutor中workQueue、threadFactory和handle
我们继续讨论ThreadPoolExecutor线程池。上篇文章给出的最简单的ThreadPoolExecutor线程池的使用方式中,我们只采用了ThreadPoolExecutor最简单的一个构造函数:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
2016-07-24 20:08:08 7479
原创 Java多线程研究04-线程池的使用(ThreadPoolExecutor详解)
为什么要使用线程池?线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。 另一方面,大多数实际场景中是这样的:处理某一次请求的时间是非常短暂的,但是请求数量是巨大的。这种技术背景下,如果我们为每一个请求都单独创建一个线程,那么物理机的所有资源基本上都被操作系统创建线程、切换
2016-07-24 19:33:58 1627
原创 Java多线程研究03-线程的基本操作(notify,notifyAll,interrupt,join,sleep)
JAVA中的基本线程操作这是前面给出的线程状态切换图例,可能还不能完全理解其中的切换条件,我们将详细介绍JAVA中如何进行这些线程状态的操作。 本文将讲解notify、notifyAll、interrupt、join和sleep等操作。notify和notifyAll操作notify方法的工作情况通过代码解释:package com.zczpeng.thread;public class Noti
2016-07-24 17:35:42 1654
原创 Java多线程研究02-对象锁,synchronized关键字详解
对象锁的概念通过图理解一下,多个线程要操作同一个对象的场景 图1: 图2: 图3: 解释:● 钥匙是什么,可以理解为线程的执行资格,拥有cpu时间片等资源。● 可是对象的‘锁芯’(对象独占权)只有一个,那么可以打开这把锁的多个‘钥匙’同一时间内只能有一把‘钥匙’进行操作;其他持有‘钥匙’的线程(或者没有持有钥匙的线程)都要进入等待状态;直到某把‘钥匙’从‘锁眼’中退出,操作系统会决定
2016-07-24 16:04:58 1077
原创 Java多线程研究01-创建线程
线程与进程● 操作系统支持的线程至少会有四种状态:就绪、执行、阻塞和终结。线程在四种状态下进行切换,都是要消耗不少的CPU计算能力的。 ● 并且根据操作系统使用线程的进程的不一样,线程还分为用户线程和操作系统线程。操作系统线程(内核线程),是指操作系统内核为了完成硬件接口层操作,由操作系统内核创建的线程:例如I/O操作的内核线程,这些线程应用程序是不能干预的;用户线程,是指用户安装/管理的应用
2016-07-23 23:23:15 590
原创 Java 代码性能优化总结
Java 代码性能优化总结前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果
2016-07-03 18:08:22 2141 1
redis3.0集群性能问题
2015-05-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人