05 2018 档案
摘要:一、 The method iterator() is ambiguous for the type KafkaStream 最近在学习消息总线Kafka的时候,在IDEA中写了一个简单的生产者和消费者demo。但是消费者端一直报错。错误信息如下: 1 ConsumerIterator it =stream.iterator(); 2 这句代码老是报错,The meth...
阅读全文
摘要:前几天面试了一家公司,给了两个算法题目。觉得挺有意思的,当时面试回答的时候回答的不太好。随后回来找了一下资料。记录一下。 一、题目一 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。楼主这个题目当时没有回答出很好的方案。只想到了这个题目应该和二进制有联系。回来后在网上查找了一下资...
阅读全文
摘要:一、Semaphore介绍 Semaphore意思为信号量,是用来控制同时访问特定资源的线程数数量。它的本质上其实也是一个共享锁。Semaphore可以用于做流量控制,特别是公用资源有限的应用场景。例如:某个停车场车位只有10个,一开始停车场没有车辆所有车位全部空着,然后先后到来八辆车,停车场车位够
阅读全文
摘要:一、CyclicBarrier工具类介绍 在上一篇文中我们介绍到了CountDownLatch工具类,其实CyclicBarrier和CountDownLatch工具类实现的功能差不多。我们可以从字面上理解CyclicBarrier意思就是可以循环使用的屏障。该工具类可以做到让一组线程到达一个屏障点的时候被阻塞,直到最后一个线程到达才开启屏障,继续往下执行。Cyclic...
阅读全文
摘要:一、CountDownLatch工具类介绍 CountDownLatch类是Java并发工具常用的四大工具之一,CountDownLatch允许一个或者多个线程等待其他线程完成工作。假设我们有这样的一个需求,我们需要解析一个Excel里多个sheet的据,这个时候我们考虑使用多 线程同时进行工作,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程...
阅读全文
摘要:在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实现等待/通知模式。Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者在使用方式以及功能特性上还是有差别的。Object和Condition接口的一些对比。摘自《Java并发编程的艺术...
阅读全文
摘要:上篇文章简单的介绍了ReentrantLock可重入锁。事实上我们可以理解可重入锁是一种排他锁,排他锁在同一个时刻只能够由一个线程进行访问。这就与我们实际使用过程中有点不想符合了,比如说当我们进行读写文件操作的时候,我们可能允许多个线程进行读文件操作,而对写文件只需要控制一个线程既可以。在这种业务情况下如果使用排他锁,可能不太符合而且效率也可能有些低下。 一、Reen...
阅读全文
摘要:一、Oracle数据库表分区概念和理解 1.1、已经存在的表没有方法可以直接转化为分区表。 1.2、不在分区字段上建立分区索引,在别的字段上建立索引相当于全局索引。效率低。 1.3、表空间概念: 表空间指的是是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称
阅读全文
摘要:一、ReentrantLock简介 ReentrantLock字面意义上理解为可重入锁。那么怎么理解可重入这个概念呢?或者说和我们经常用的synchronized又什么区别呢? ReentrantLock可重入锁是一种递归无阻塞的同步锁机制,简单意思就是说可重入锁就是当前持有该锁的线程能够多次获取该
阅读全文

浙公网安备 33010602011771号