随笔分类 -  B =Java并发编程实战

并发编程实战
摘要:1.Condition简介 任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等 阅读全文
posted @ 2019-06-30 14:56 xkzhangsanx 阅读(791) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/takumicx/p/9402021.html 目录 1.前言 2.AbstractQueuedSynchronizer介绍 2.1 AQS是构建同步组件的基础 2.2 AQS的内部结构(ReentrantLock的语境下) 3 非公平模式加锁流 阅读全文
posted @ 2019-06-30 14:10 xkzhangsanx 阅读(384) 评论(0) 推荐(0) 编辑
摘要:前言 本文描述Java线程线程状态及状态转换,不会涉及过多理论,主要以代码示例说明线程状态如何转换。 基础知识 1. 线程状态 Thread源码中的状态说明: 线程可以有6种状态: New(新建) Runnable(可运行) Blocked(被阻塞) Waiting(等待) Timed waitin 阅读全文
posted @ 2019-05-30 22:21 xkzhangsanx 阅读(200) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.importnew.com/27063.html 考查Java的并发编程时,手写“生产者-消费者模型”是一个经典问题。有如下几个考点: 对Java并发模型的理解 对Java并发编程接口的熟练程度 bug free coding style 本文主要归纳了4种写法,阅读后, 阅读全文
posted @ 2019-05-21 21:14 xkzhangsanx 阅读(304) 评论(0) 推荐(0) 编辑
摘要:1.仍然先看构造方法:ThreadPoolExecutor构造方法 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueue<Runna 阅读全文
posted @ 2019-05-01 23:14 xkzhangsanx 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1.ThreadPoolExecutor构造方法 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueue<Runnable> work 阅读全文
posted @ 2019-04-28 22:11 xkzhangsanx 阅读(258) 评论(0) 推荐(0) 编辑
摘要:在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务 阅读全文
posted @ 2019-04-27 21:20 xkzhangsanx 阅读(126) 评论(0) 推荐(0) 编辑
摘要:1.新建Account类,使用AtomicLong定义账户余额,增加和减少金额方法使用getAndAdd方法。 2.Bank和Company类与https://www.cnblogs.com/xkzhangsanx/p/10759690.html一致。 3.测试类 4.测试结果 参考:java7并发 阅读全文
posted @ 2019-04-26 21:54 xkzhangsanx 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1.新建Account类,使用Semaphore同步增加和减少金额方法。 2.其他和https://www.cnblogs.com/xkzhangsanx/p/10759690.html一致。 注意释放信号量 3.测试结果 参考:java7并发编程实战手册 GitHub地址:https://gith 阅读全文
posted @ 2019-04-25 23:09 xkzhangsanx 阅读(215) 评论(0) 推荐(0) 编辑
摘要:1.新建Account类,使用ReentrantLock同步增加和减少金额方法。 2.其他和https://www.cnblogs.com/xkzhangsanx/p/10759690.html一致。 注意释放锁 3.测试结果 Account start money:1000.000000Compa 阅读全文
posted @ 2019-04-24 22:39 xkzhangsanx 阅读(181) 评论(0) 推荐(0) 编辑
摘要:1.新建Account类,使用synchronized同步增加和减少金额方法。 2.新建Company类,往账户增加金额,实现Runnable接口 3.新建Bank类,减少账户金额,实现Runnable接口 4.新建Main测试类,创建companyThread和bankThread,启动线程,打印 阅读全文
posted @ 2019-04-23 23:06 xkzhangsanx 阅读(495) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示