Java多线程系列--“基础篇”08之 join()
摘要:概要本章,会对Thread中join()方法进行介绍。涉及到的内容包括:1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479275.html1. join()介绍join() 定义在Thread.java中。join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。这句话可能有点晦涩,我们还是通过例子去理解:// 主线程public class Father extends Thread { public void run() {...
阅读全文
Java多线程系列--“基础篇”07之 线程休眠
摘要:概要本章,会对Thread中sleep()方法进行介绍。涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479256.html1. sleep()介绍sleep() 定义在Thread.java中。sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间;在线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。2
阅读全文
Java多线程系列--“基础篇”06之 线程让步
摘要:概要本章,会对Thread中的线程让步方法yield()进行介绍。涉及到的内容包括:1. yield()介绍2. yield()示例3. yield() 与 wait()的比较转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479243.html1. yield()介绍yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!2. yield()
阅读全文
Java多线程系列--“基础篇”05之 线程等待与唤醒
摘要:概要本章,会对线程等待/唤醒方法进行介绍。涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long timeout)和notify()4. wait() 和 notifyAll()5. 为什么notify(), wait()等函数定义在Object中,而不是Thread中转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479224.htmlwait(), notify(), notifyAll()等方法介绍在Object.java中,定义了wait(),
阅读全文
Java多线程系列--“基础篇”04之 synchronized关键字
摘要:概要本章,会对synchronized关键字进行介绍。涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchronized代码块4. 实例锁 和 全局锁转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479202.html1. synchronized原理在java中,每一个对象有且仅有一个同步锁。这也意味着,同步锁是依赖于对象而存在。当我们调用某对象的synchronized方法时,就获取了该对象的同步锁。例如,synchronized(obj)就获取了“obj
阅读全文
Java多线程系列--“基础篇”03之 Thread中start()和run()的区别
摘要:概要Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答。本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start() 和 run()相关源码(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479083.htmlstart() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不能被重复调用。run() : run()就和普通的成员方法一样,可以被重复调用。单独调用ru.
阅读全文
Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式
摘要:概要本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable。之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解。本章内容包括:Thread和Runnable的简介Thread和Runnable的异同点Thread和Runnable的多线程的示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479063.htmlThread和Runnable简介Runnable 是一个接口,该接口中
阅读全文
Java多线程系列--“基础篇”01之 基本概念
摘要:多线程是Java中不可避免的一个重要主体。从本章开始,我们将展开对多线程的学习。接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), notify()等接口;Thread类中的接口;synchronized关键字。注:JUC包是指,Java.util.concurrent包,它是由Java大师Doug Lea完成并在JDK1.5版本添加到Java中的。在进入后面章节的学习之前,先对了解一些多线程的相关概念。线程状态图说明:线程共包括以下5种状态。1. 新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,...
阅读全文
Java多线程系列目录(共43篇)
摘要:最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。(一) 基础篇01.Java多线程系列--“基础篇”01之 基本概念02.Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式03.Java多线程系列--“基础篇”03之 Thread中start()和run()的区别04.Java多线程系列--“基础篇”04之 synchronized关键字05.Java多线程系列--“基础篇”05之 线程等待与唤醒06.Java多线程系列--“基础篇”06之 线程让步07.Java多线程系列--“基础篇”07之 线程休眠08.Java多线程系列--“基础篇”08之 join()09
阅读全文
String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
摘要:本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法。转载请注明出处:http://www.cnblogs.com/skywang12345/p/string01.html更多内容请参考:1.StringBuilder 详解 (String系列之2)2.StringBuffer 详解 (String系列之3)String 简介String 是java中的字符串,它继承于CharSequence。String类所包含的API接口非常多。为了便于今后的使用,我对String的API进行了分类,并都给出的演示程序。String 和 CharSequence 关系St
阅读全文
StringBuffer 详解 (String系列之3)
摘要:本章介绍StringBuffer以及它的API的详细使用方法。转载请注明出处:http://www.cnblogs.com/skywang12345/p/string03.htmlStringBuffer 简介StringBuffer 是一个线程安全的可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。StringBuilder 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。StringBuffer 和 CharSequence
阅读全文
StringBuilder 详解 (String系列之2)
摘要:本章介绍StringBuilder以及它的API的详细使用方法。转载请注明出处:http://www.cnblogs.com/skywang12345/p/string02.htmlStringBuilder 简介StringBuilder 是一个可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。StringBuffer 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。StringBuilder 和 CharSequence之间
阅读全文
java io系列26之 RandomAccessFile
摘要:本文主要介绍 RandomAccessFile。转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_26.html更多内容请参考:java io系列01之 "目录"RandomAccessFileRandomAccessFile 是随机访问文件(包括读/写)的类。它支持对文件随机访问的读取和写入,即我们可以从指定的位置读取/写入文件数据。需要注意的是,RandomAccessFile 虽然属于java.io包,但它不是InputStream或者OutputStream的子类;它也不同于FileInputStream和FileOu
阅读全文
java io系列25之 PrintWriter (字符打印输出流)
摘要:更多内容请参考:java io系列01之 "目录"PrintWriter 介绍PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。PrintWriter 函数列表PrintWriter(OutputStream out)PrintWriter(OutputStream out, boolean autoFlush)PrintWriter(Writer
阅读全文
java io系列24之 BufferedWriter(字符缓冲输出流)
摘要:转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_24.html更多内容请参考:java io系列01之 "目录"BufferedWriter 介绍BufferedWriter 是缓冲字符输出流。它继承于Writer。BufferedWriter 的作用是为其他字符输出流添加一些缓冲功能。BufferedWriter 函数列表// 构造函数BufferedWriter(Writer out) BufferedWriter(Writer out, int sz) void close() ...
阅读全文
java io系列23之 BufferedReader(字符缓冲输入流)
摘要:转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_23.html更多内容请参考:java io系列01之 "目录"BufferedReader 介绍BufferedReader 是缓冲字符输入流。它继承于Reader。BufferedReader 的作用是为其他字符输入流添加一些缓冲功能。BufferedReader 函数列表BufferedReader(Reader in)BufferedReader(Reader in, int size)void close()void mark(int markLimit)boolea
阅读全文
java io系列22之 FileReader和FileWriter
摘要:FileReader 是用于读取字符流的类,它继承于InputStreamReader。要读取原始字节流,请考虑使用 FileInputStream。FileWriter 是用于写入字符流的类,它继承于OutputStreamWriter。要写入原始字节流,请考虑使用 FileOutputStream。转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_22.html更多内容请参考:java io系列01之 "目录"FileReader和FileWriter源码分析1. FileReader 源码(基于jdk1.7.40) 1
阅读全文
java io系列21之 InputStreamReader和OutputStreamWriter
摘要:InputStreamReader和OutputStreamWriter 是字节流通向字符流的桥梁:它使用指定的 charset 读写字节并将其解码为字符。InputStreamReader 的作用是将“字节输入流”转换成“字符输入流”。它继承于Reader。OutputStreamWriter 的作用是将“字节输出流”转换成“字符输出流”。它继承于Writer。转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_21.html更多内容请参考:java io系列01之 "目录"InputStreamReader和OutputSt
阅读全文
java io系列20之 PipedReader和PipedWriter
摘要:本章,我们学习PipedReader和PipedWriter。它们和“PipedInputStream和PipedOutputStream”一样,都可以用于管道通信。PipedWriter 是字符管道输出流,它继承于Writer。PipedReader 是字符管道输入流,它继承于Writer。PipedWriter和PipedReader的作用是可以通过管道进行线程间的通讯。在使用管道通信时,必须将PipedWriter和PipedReader配套使用。转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_20.html更多内容请参考:java io
阅读全文
java io系列19之 CharArrayWriter(字符数组输出流)
摘要:本章,我们学习CharArrayWriter。学习时,我们先对CharArrayWriter有个大致了解,然后深入了解一下它的源码,最后通过示例来掌握它的用法。转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_19.html更多内容请参考:Java io系列 "目录"CharArrayWriter 介绍CharArrayReader 用于写入数据符,它继承于Writer。操作的数据是以字符为单位!CharArrayWriter 函数列表CharArrayWriter()CharArrayWriter(int initialSi
阅读全文