随笔分类 -  多线程

多线程之:如何避免死锁
摘要:java代码中,我们如何避免死锁呢?根据死锁产生的原因,我们可以得出解决方法,那就是多线程环境下以相同顺序获取一组锁;另外,由于无限期等待对方所持有的锁导致死锁,因此可采取限时等待,当超过设定时间时还无法获取到锁时,可尝试重试或者放弃锁的获取,行其他操作,总的来说,避免死锁有以下两种方法:1、以相同... 阅读全文

posted @ 2015-11-29 22:31 jessezeng 阅读(577) 评论(0) 推荐(0)

多线程之:死锁
摘要:死锁指两个或者多个线程持有锁的同时并等待对方持有的锁,导致无限期等待的情况,通常发生于以不同顺序请求同一组锁。两个线程以不同顺序获取一组锁会导致死锁,如: 1 public class DeadLockTest { 2 3 public static class LockGroup{ 4 ... 阅读全文

posted @ 2015-11-29 22:03 jessezeng 阅读(309) 评论(0) 推荐(0)

多线程之:ThreadLocal
摘要:Java中ThreadLocal类可以使创建的变量只被同一个线程进行读和写操作,即使有多个线程同时执行同一段代码,并且这段代码中又有一个指向同一个ThreadLocal变量的引用,这些线程依然不能看到彼此ThreadLocal变量域,只能看到自己私有的ThreadLocal实例。看看如下demo: ... 阅读全文

posted @ 2015-11-29 18:51 jessezeng 阅读(299) 评论(0) 推荐(0)

多线程之:线程同步代码块
摘要:java中使用关键字synchronized进行线程同步,有四中同步块: 1、实例方法 2、静态方法 3、实例方法中的同步块 4、静态方法中的同步块实例方法同步:在方法申明中使用synchronized 关键字,同步在拥有该方法的对象上1 public synchronized void... 阅读全文

posted @ 2015-11-29 10:42 jessezeng 阅读(330) 评论(0) 推荐(0)

多线程之:线程安全
摘要:线程安全是指:没有竞态条件,允许被多个线程同时执行,且执行结果幂等程序块。java代码多线程环境下安全的资源:1、基本数据类型的局部变量;2、未被作为返回值、未被传递到其它线程访问的方法中的非基本数据类型的局部变量;3、受线程控制且未产生逃逸的资源;4、共享状态本身是同步的的资源。线程控制逃逸指:资... 阅读全文

posted @ 2015-11-28 22:09 jessezeng 阅读(185) 评论(0) 推荐(0)

多线程之:竞态条件&临界区
摘要:竞态条件指:当一个对象或者一个不同步的共享状态,被两个或者两个以上的线程修改时,对访问顺序敏感,则会产生竞态条件。临界区指:导致竞态条件发生的代码区。如:increase块为临界区1 public class Identifier{2 protected int id= 0;3 pu... 阅读全文

posted @ 2015-11-28 21:20 jessezeng 阅读(598) 评论(0) 推荐(0)

多线程之:java线程创建
摘要:java中创建线程有两种方式:1、继承Thread类,重写run()方法,如:1 public class MyThread extends Thread {2 public void run(){3 System.out.println("MyThread is running..... 阅读全文

posted @ 2015-11-28 16:52 jessezeng 阅读(168) 评论(0) 推荐(0)

多线程之:多线程的优缺点
摘要:多线程程序在当前的多处理器计算机上用得非常广泛,尤其是高并发程序,那么它有什么优点呢?个人觉得大致有以下几点:1、多线程充分利用计算机资源;2、多线程处理,程序响应速度更快。任何事物都存在两面性,多线程既然有它的优点,那么也存在它的缺点:1、对程序员来说,比单线程应用更具挑战性,程序设计实现更加复杂... 阅读全文

posted @ 2015-11-28 16:02 jessezeng 阅读(1155) 评论(0) 推荐(0)

导航