上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 26 下一页

2018年7月13日

JAVA多线程提高十:同步工具CyclicBarrier与CountDownLatch

摘要: 今天继续学习其它的同步工具:CyclicBarrier与CountDownLatch 一、CyclicBarrier CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必 阅读全文

posted @ 2018-07-13 08:19 pony1223 阅读(1048) 评论(1) 推荐(0)

JAVA多线程提高九:Semaphere同步工具

摘要: java 中Semaphere可类比操作系统信号量,硬件资源如IO、内存、磁盘等都是有固定量的,多个程序需要竞争这些资源,没有资源就需要被挂起。 一、类和方法摘要 构造函数: public Semaphore(int permits):创建具有给定的许可数和非公平的公平设置的 Semaphore。  阅读全文

posted @ 2018-07-13 08:05 pony1223 阅读(433) 评论(0) 推荐(0)

2018年7月10日

JAVA多线程提高八:线程锁技术

摘要: 前面我们讲到了synchronized;那么这节就来将lock的功效。 一、locks相关类 锁相关的类都在包java.util.concurrent.locks下,有以下类和接口: 接口摘要: 类摘要: 二、synchronized与lock synchronized对比lock: 1、synch 阅读全文

posted @ 2018-07-10 08:24 pony1223 阅读(3233) 评论(1) 推荐(2)

2018年7月9日

JAVA多线程提高七:Callable与Future的应用

摘要: Callable与Runnable 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: 由于run()方法返回值为void类型,所以在执行完任务之后无法返回任何结果。 Callable位于java.util.concurrent包下,它也是一个接口,在 阅读全文

posted @ 2018-07-09 22:47 pony1223 阅读(1422) 评论(0) 推荐(0)

JAVA多线程提高六:java5线程并发库的应用_线程池

摘要: 前面我们对并发有了一定的认识,并且知道如何创建线程,创建线程主要依靠的是Thread 的类来完成的,那么有什么缺陷呢?如何解决? 一、对比new Threadnew Thread的弊端 a. 每次new Thread新建对象性能差。 b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占 阅读全文

posted @ 2018-07-09 22:40 pony1223 阅读(683) 评论(0) 推荐(0)

2018年7月5日

JAVA多线程提高五:原子性操作类的应用

摘要: 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问 阅读全文

posted @ 2018-07-05 08:27 pony1223 阅读(763) 评论(0) 推荐(0)

2018年7月2日

JAVA多线程提高四:多个线程之间共享数据的方式

摘要: 多个线程访问共享对象和数据的方式 如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: 阅读全文

posted @ 2018-07-02 22:38 pony1223 阅读(2547) 评论(0) 推荐(1)

2018年7月1日

JAVA多线程提高三:线程范围内共享变量&ThreadLocal

摘要: 今天我们学习的是如何在线程自己的范围内达到变量数据的共享,而各个线程之间又是互相独立开来,各自维护的,即我们说的ThreadLocal的作用。 一、概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变 阅读全文

posted @ 2018-07-01 22:55 pony1223 阅读(729) 评论(0) 推荐(0)

JAVA多线程提高一:传统线程技术&传统定时器Timer

摘要: 前面我们已经对多线程的基础知识有了一定的了解,那么接下来我们将要对多线程进一步深入的学习;但在学习之前我们还是要对传统的技术进行一次回顾,本章我们回顾的则是:传统线程技术和传统的定时器实现. 一、传统线程技术 1.创建方式 1、继承thread类 2、实现Runnable接口 3、实现Callabl 阅读全文

posted @ 2018-07-01 22:40 pony1223 阅读(542) 评论(0) 推荐(0)

JAVA多线程提高二:传统线程的互斥与同步&传统线程通信机制

摘要: 本文主要是回顾线程之间互斥和同步,以及线程之间通信,在最开始没有juc并发包情况下,如何实现的,也就是我们传统的方式如何来实现的,回顾知识是为了后面的提高作准备。 一、线程的互斥 为什么会有线程的互斥?可以想银行取款的问题,如果不做监控,多个人同时针对一个存折取钱的时候就会出现钱不对的问题,下面我们 阅读全文

posted @ 2018-07-01 22:40 pony1223 阅读(510) 评论(0) 推荐(0)

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 26 下一页

导航