多线程
文章平均质量分 78
LeLe_Feb
这个作者很懒,什么都没留下…
展开
-
Java中Synchronized的用法
原文:http://blog.csdn.net/luoweifu/article/details/46613015 作者:luoweifu 转载请标名出处《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.转载 2017-05-04 16:16:00 · 210 阅读 · 0 评论 -
Java线程的5种状态及状态间的转换
新建(new):新创建了一个线程对象。可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。运行(running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。阻塞(block):阻塞原创 2017-09-09 10:50:26 · 864 阅读 · 0 评论 -
Java-synchronized的使用方法
最近在看《Java 多线程编程核心技术》,顺便花点时间总结下synchronized的用法。在介绍之前需要了解到“非线程安全”问题存在于“实例变量”中,如果是方法内部的变量,则不存在“非线程安全”问题。下面举个栗子:方法内部声明一个变量时,是不存在“非线程安全”问题的。/** * Created by LZF on 2017/7/13. * 测试:方法内部的变量,不存在“非线程安全”问题 */原创 2017-07-14 11:50:02 · 482 阅读 · 0 评论 -
深入分析ConcurrentHashMap
效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线程访问HashTable的同步方法时,可能会进入阻塞或轮询状态。如线程1使用put进行添加元素,线程2不但不能使用put方法添加元素,并且也不能使用get方法来获取元素,转载 2017-07-31 16:34:45 · 170 阅读 · 0 评论 -
定时器Timer
Timer类有两种执行模式: fixed-rate:对应于 scheduleAtFixedRate 方法 fixed-delay:对应于 schedule 方法fixed-rate 模式,如果某次任务超时了,它会智能的缩短下一次任务的执行时间, 比如你 10 秒一次任务,但是任务执行了 15 秒, 那么下一次任务如果没有超时的话,可能也不会分配给他完整的 10 秒,而是 5 秒目的:原创 2017-09-24 11:17:13 · 661 阅读 · 0 评论 -
sleep()、wait()、yield()和join()方法特点及区别
sleep() 与wait()的区别这两个方法来自不同的类,sleep是Thread类的方法,而wait是Object类的方法;执行sleep方法后不会释放锁,而执行wait方法后会释放锁;wait,notify和notifyAll只能在同步方法或同步代码块中调用,而sleep可以在任何地方调用;sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常。(如果不是在原创 2017-09-09 11:55:13 · 2565 阅读 · 0 评论 -
ConcurrentHashMap原理分析
HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占。ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段都有自己的锁。只要多个修改操作发生在转载 2017-07-31 16:43:58 · 182 阅读 · 0 评论 -
线程死锁及如何使用JDK自带工具监测是否有死锁现象
Java线程死锁原因:不同线程都在等待根本不可能被释放的锁,从而导致所有的任务都无法继续完成。举个栗子:两个线程互相等待对方释放锁。/** * Created by LZF on 2017/7/14. * 学习:如何查看多线程死锁 */class DealThread implements Runnable{ public String username; public原创 2017-07-14 16:13:40 · 633 阅读 · 0 评论 -
Java线程面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用转载 2017-07-14 20:04:24 · 317 阅读 · 0 评论 -
this.interrupted()和this.isInterrupted()方法的区别
interrupted()方法声明:public static boolean interrupted() {//判断当前线程是否中断,当前线程是指运行this.interrupted()方法的线程 return currentThread().isInterrupted(true);//true表示执行该方法后清除中断状态}isInterrupted()方法声明:public bool原创 2017-07-28 12:19:39 · 1308 阅读 · 0 评论