随笔分类 -  Java多线程

摘要:一、线程的状态 线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中。 调用与线程有关的方法后,会进入不同的线程状态,这些状态之间某些是可双向切换的,比如WAITING和RUNNING状态之间可以循环地进行切换;而有些是单向切换的,比如线程销毁后并不能自动进入RUNNING状态。 阅读全文
posted @ 2018-05-04 16:45 BigJunOba 阅读(639) 评论(0) 推荐(0)
摘要:在使用多线程技术的单例模式时会出现一些意想不到的情况,这样的代码如果在生产环境中出现异常,有可能造成灾难性的后果。 一、立即加载/“饿汉模式” 立即加载就是使用类的时候已经将对象创建完毕,常见的实现方法就是直接new实例化。立即加载/“饿汉模式”是在调用方法前,实例已经被创建了。 示例:从输出结果可 阅读全文
posted @ 2018-05-04 16:40 BigJunOba 阅读(443) 评论(0) 推荐(0)
摘要:一、定时器Timer的使用 在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。Timer类的主要作用就是设置计划任务,但封装任务的类确实TimerTask类,执行计划任务的代码要放入TimerTask类的子类中,因为TimerTask是一个抽象类。 1.方法sch 阅读全文
posted @ 2018-05-04 16:37 BigJunOba 阅读(481) 评论(0) 推荐(0)
摘要:一、使用ReentrantLock类 在Java多线程中,可以使用synchronized关键字来实现线程之间的同步互斥,但ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定、多路分支通知等功能,而且在使用上也比synchronized更加的灵活。 1.使用 阅读全文
posted @ 2018-05-04 16:33 BigJunOba 阅读(734) 评论(0) 推荐(0)
摘要:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效地把控与监督。 一、等待/通知机制 1.不使用等待/通 阅读全文
posted @ 2018-05-02 14:21 BigJunOba 阅读(13934) 评论(1) 推荐(1)
摘要:一、synchronized同步方法 1.方法内的变量为线程安全 “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果也就是“线程安全”的了。 示例:由于HasSelfPrivateNum类中的addI(String username)方法的num变 阅读全文
posted @ 2018-05-02 11:44 BigJunOba 阅读(705) 评论(0) 推荐(0)
摘要:一、进程和多线程的概念以及线程的优点 打开Windo任务管理器可以看到很多正在运行着的exe程序,完全可以将运行在内存中的exe文件理解成进程,进程是受操作系统管理的基本运行单元。 线程可以理解成在进程中独立运行的子任务。比如,QQ.exe运行时就有很多的子任务在同时运行。 使用线程,可以最大限度地 阅读全文
posted @ 2018-05-02 10:46 BigJunOba 阅读(479) 评论(0) 推荐(0)