1.线程池介绍 线程池是一种线程使用模式。线程由于具有空闲(eg:等待返回值)和繁忙这种不同状态,当数量过多时其创建、销毁、调度等都会带来开销。线程池维护了多个线程,当分配可并发执行…
分类:java并发
kafka的Java客户端示例代码(kafka_2.11-0.8.2.2)
1.使用Producer API发送消息到Kafka 从版本0.9开始被KafkaProducer替代。 HelloWorldProducer.java package cn.ljh.kafka.kafka_hellow…
【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)
书上示例 在第一章《基本套接字》中,作者给出了一个TCP Socket通信的例子——反馈服务器,即服务器端直接把从客户端接收到的数据原原本本地反馈回去。 书上客户端代码如下: 1 2 3 4 5 6 7 8 9 10 1…
java多线程编程--抽象方法加锁
java多线程编程–抽象方法加锁 最近在开发中遇到很多问题,其中问题一就是需要一个抽象方法,但是同时需要对它加上资源锁.以前我是不知道抽象方法到底能不能加上资源锁的,看完下面的文章我知道了: 这里要先回忆一下…
java JUC里的FutureTask类的两种简单用法
第一种使用public FutureTask(Runnable runnable, V result)这个构造函数 @Slf4j public class FutureTaskExample1 { private sta…
JUC代码浅析[1]——同步器AQS
JUC代码浅析[1]——同步器AQS AQS(AbstractQueuedSynchronizer)是一个提供实现各种锁和同步器的基…
java并发编程框架 Executor ExecutorService invokeall
首先介绍两个重要的接口,Executor和ExecutorService,定义如下: Java代码 public interface Executor {…
Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。 1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗? ne…
Java 悲观锁和乐观锁的实现
锁(locking) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据…
Java并发编程实战--协作对象间的死锁与开放调用
某些获取多个锁的操作并不像在LeftRightDeadlock或transferMoney中那么明显,这两个锁并不一定必须在同一个方法中被获取。下面两个相互协作的类,在出租车调度系统中可能会找到它们。Taxi代表一个出租…
【Java并发编程实战】----- AQS(一):简介
在前面博客中,LZ讲到了ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch,他们都有各自获取锁的方法,同时相对于Java的内置锁,他们具有明显的优势…
java Reentrant Lock
//Listing 7-1. Achieving Synchronization in Terms of Reentrant Locks import java.util.concurrent.Executors; im…