随笔分类 -  Java

摘要:BIO 伴随着Java的发布,带来的是Socket套接字API。这套API实现是的同步阻塞IO模型。下面首先来看个示例,如何使用这套API完成一个echo服务端程序。 服务端 : 客户端 : 在MultiThreadedEchoServer中创建了一个socket监听9999端口,接着在while循 阅读全文
posted @ 2019-12-18 10:31 折花载酒少年事 阅读(259) 评论(0) 推荐(0)
摘要:1.使用synchronized中的等待和唤醒实现消费者和生产者模式 如上图,假设有一个公共的容量有限的池子,有两种人,一种是生产者,另一种是消费者。需要满足如下条件: 1. 生产者产生资源往池子里添加,前提是池子没有满,如果池子满了,则生产者暂停生产,直到自己的生成能放下池子。 2. 消费者消耗池 阅读全文
posted @ 2019-10-14 09:56 折花载酒少年事 阅读(349) 评论(0) 推荐(0)
摘要:    在了解ReentrantLock之前,我们首先回忆一下 synchronized ,synchronized是java内置的关键字,锁的获取和释放都是由jvm实现,因此用户就不需要显示的去释放锁,是一种独占的加锁方式,但是虽然方便,也有一定的弊端: 1 阅读全文
posted @ 2019-10-13 19:38 折花载酒少年事 阅读(349) 评论(0) 推荐(0)
摘要:1.synchronized的三种加锁方式 对于普通同步方法,锁是当前实例对象(对象锁) 在这种使用方式中,要注意锁是对象的实例,因为要保证多个线程使用的是同一个实例,否则仍然会有问题。 比如如下代码,因为每个线程的实例是不同的,因为他们获取的都不是同一把锁 要想执行结果正确,就必须保证多个线程的实 阅读全文
posted @ 2019-10-12 09:45 折花载酒少年事 阅读(4931) 评论(0) 推荐(0)