自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 多线程(四)线程的同步之同步方法

与同步代码块对应的,Java的多线程安全支持还提供了同步方法,同步方法就是使用synchronized关键字来修饰某个方法,该方法称为同步方法。对于同步方法而言,无须显式指定同步监视器,同步方法的同步监视器是this,也就是该对象本身。通过使用同步方法可以非常方便地将某类编程线程安全的类,线程安全的类具有如下特征:A、该类的对象可以被多个线程安全的访问;B、每个线程调用该对象的任意方法

2016-08-19 13:34:40 353

原创 多线程(四)线程的同步之同步代码块

之所以会出现《多线程(四)线程的同步之线程安全问题》文章中的问题,其原因是因为run方法体不具有同步安全性:程序中有两条并发线程在修改Account对象。一个线程进入方法准备减少取钱金额,但是还没减少取钱金额时,另一个线程由于判断金额没有减少,故可以进入取钱方法体中,因而造成余额负数情况出现。为了解决这个问题,Java的多线程支持引入了同步监视器来解决这个问题,使用同步监视器的同步方法就是同步

2016-08-19 10:36:59 840

原创 多线程(四)线程的同步之线程安全问题

关于线程安全问题,有一个经典的问题:银行取钱的问题。银行取钱的基本流程可以分为如下几个步骤:1、用户输入账号、密码,系统判断用户的账户、密码是否匹配;2、用户输入取款金额;3、系统判断账户余额是否大于取款金额;4、如果余额大于取款金额,取款成功;如果余额小于取款金额,则取款失败。初步看上去,这个流程确实就我们日常生活中经常见到的,没有任何问题。但是如果将这个流程放到多线程并发的

2016-08-18 20:51:50 624

原创 多线程(三)线程控制之线程优先级

每个线程执行时都具有一定的优先级,优先级高的线程获得较多的执行机会,而优先级低的线程则获得较少的执行机会。每个线程默认的优先级都与创建它的父线程的优先级相同,在默认情况下,main线程具有普通优先级,由main线程创建的子线程也具有普通优先级。Thread类提供了setPriority(int newPriority)、getPriority()方法来设置和返回指定线程的优先级,其中set

2016-08-14 13:20:36 2962

原创 多线程(三)线程控制之线程让步

yield()方法是一个和sleep()方法有点类似的方法,它也是Thread类提供的一个静态方法,它可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是将该线程转入就绪状态。yield()只是让当前线程暂停一下,让系统的线程调度器重新调度一次,完全可能的情况是:当某个线程调用了yield()方法暂停之后,线程调度器又将其调度出来重新执行。实际上,当某个线程调用yield()方法暂停之后,

2016-08-14 12:43:39 2269

原创 多线程(三)线程控制之线程睡眠

如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用Thread类的静态sleep()方法来实现。sleep()方法有两种重载形式。A、static void sleep(long millis):让当前正在执行的线程暂停millis毫秒,并进入阻塞状态,该方法受到系统计时器和线程调度器的精度与准确度的影响。B、static void sleep(long millis

2016-08-14 12:29:10 5700

原创 多线程(三)线程控制之后台线程

有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程(Daemon Thread)”,又称为“守护线程”或“精灵线程”。JVM的垃圾回收线程就是典型的后台线程。后台线程有个特征:如果所有的前台线程都死亡,后台线程会自动死亡。调用Thread对象的setDaemon(true)方法可将指定线程设置成后台线程。下面程序将执行线程设置成后台线程,可以看到当所有的

2016-08-14 12:09:25 1414

原创 多线程(三) 控制线程之join线程

Java的线程支持提供了一些便捷的工具方法,通过这些便捷的工具方法可以很好地控制线程的执行。Thread提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()加入的join()线程执行完为止。join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有的

2016-08-14 11:51:27 1346 1

原创 多线程(二)线程的创建和启用

Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码)。Java使用线程执行体来代表这段程序流。一、继承Thread类创建线程类package gblw.fisrt;//通过继承Thread类来创建线程类public class FisrtThread extends Th

2016-08-13 16:11:44 263

原创 多线程(一)进程与线程概念

1、什么是线程?答:几乎所有的操3作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。2、线程与进程是什么呢?答:几乎所有的操作系统都支持进程的概念,所有运行中的任务通常对应一个进程(Process)。当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序,并且具

2016-08-13 15:24:53 421

原创 eclipse插件explorer安装使用

在MyEclipse开发中常用到其中一个"Open In Explorer"的小插件,可以直接进入Windows资源管理器中打开选中文件所在的目录,在使用eclipse开发时也很需要这个功能,否则只能查看resource属性等方式,找到文件的目录非常不便。OpenExplorer插件可以满足这个功能,可以到https://github.com/samsonw/OpenExplorer/downlo

2016-08-11 10:55:42 248

原创 Eclipse 安装反编译插件jadclipse

一、先下载jadClipse的jar包 链接:sourceforge.net/projects/jadclipse/ 二、将net.sf.jadclipse_3.3.0.jar拷贝到eclipse的plugins目录下三、再删除eclipse的configuration目录下org.eclipse.update文件四、如果,你的eclipse是开着的,点击菜单栏中File->Resta

2016-08-11 09:39:56 252

转载 java的动态代理机制详解

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或

2016-08-11 09:26:47 159

跟大海学图片处理Thumbnailator(二)

1、从一个图片创造一个该图片的缩略图        a、指定大小进行缩略(按照比例)  package com.hz;import java.io.IOException;import net.coobird.thumbnailator.Thumbnails;public class One { public static void main(Strin...

2015-09-23 13:51:26 132

原创 跟大海学图片处理Thumbnailator(一)

 这个是我在ITeye上面第一次发布博客,以前也想写写东西,但是很懒,一直没写。今天试着写写。不好的可以给我建议。首先,我们需要到以下地址(任选一个,推荐第3个)1、http://code.google.com/p/thumbnailator(注:这个地址已经迁移到2了,其次,谷歌被墙了,一般访问不到)2、http://www.oschina.net/p/thumbnailator...

2015-09-23 13:26:18 183

原创 Spring集成Quartz定时任务框架介绍和Cron表达式详解

Spring集成Quartz定时任务框架介绍和Cron表达式详解在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集...

2015-02-03 15:04:36 86

eclipse反编译插件

eclipse反编译插件

2016-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除