09 2017 档案

摘要:1、减少锁的持有时间,只对关键的代码块加锁,减少synchronized锁内部的无关模块; 2、减小锁粒度,如Collections.synchronizedMap(map)返回线程安全的map会锁整张map;而ConcurrentHashMap会通过segment只对当前要查询的链表进行加锁(ha 阅读全文
posted @ 2017-09-29 15:31 流氓剑客 阅读(530) 评论(0) 推荐(0)
摘要:package com.ada.wuliu.worker.web.cooperation.worker; public class TestOne { abstract class Father{ private int id; void before(){ id=1; System.out.println... 阅读全文
posted @ 2017-09-27 12:33 流氓剑客 阅读(4263) 评论(0) 推荐(0)
摘要:为避免操作系统频繁的创建和关闭线程,我们可以让创建的线程进行服用,使用线程池之后,直接从线程池获取线程,如果关闭线程,将线程归还给池子 线程池jdk提供了一套executor框架,在concurrnet包下,其中最核心的是ThreadPoolExecutor public static Execut 阅读全文
posted @ 2017-09-11 16:33 流氓剑客 阅读(158) 评论(0) 推荐(0)
摘要:1、cynchronized扩展:可重锁入ReentrantLock ReentrantLock是通过cas算法实现的 RenntrantLock lock=new ReentrantLock(); lock.lock();//如果资源被占用则会等待 //代码锁定区域 finally{ //必须手动 阅读全文
posted @ 2017-09-08 23:05 流氓剑客 阅读(717) 评论(0) 推荐(0)
摘要:ReentrentLock lock=new ReentrentLock(); lock.lock(); //锁的代码 finally{ lock.unlock(); } ReentrentLock 比synchronized具有更好的扩展性 ReentrentLock 可以通过lockInterr 阅读全文
posted @ 2017-09-08 15:45 流氓剑客 阅读(683) 评论(0) 推荐(0)
摘要:package com.ada.wuliu.shipper.front.service.thread; public class TestDeamon { public static class DeamonT extends Thread{ public void run(){ while(true){ System.out.println("... 阅读全文
posted @ 2017-09-08 11:27 流氓剑客 阅读(156) 评论(0) 推荐(0)
摘要:ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。 阅读全文
posted @ 2017-09-08 10:15 流氓剑客 阅读(129) 评论(0) 推荐(0)
摘要:wait和notify是针对sychronized锁定对象的 sychronized(object)object.wait();//释放object的锁sychronized(object)object.notify();//会随机唤起一个对object枷锁的等待线程,这个过程是随机唤醒的,不公平的 阅读全文
posted @ 2017-09-08 10:13 流氓剑客 阅读(125) 评论(0) 推荐(0)
摘要:hashmap市基于table和单向链表 table中存放hash值,table中存放着单向链表,查询时先计算对象hash值,找到table中对应值,然后查询链表。 ConcurrentHashMap继承与Hashmap通过Segment在读写数据时锁部分hashmap的hashtable,而不是锁 阅读全文
posted @ 2017-09-06 17:47 流氓剑客 阅读(330) 评论(0) 推荐(0)
摘要:transient是在对象序列化的时候,不参与序列化的字段。 如LinkedList实现了Serializable,其中有变量transient int size = 0; 在Serializable序列化的时候size时不会参与序列化的,如用ObjectOutputStream读取LinkedLi 阅读全文
posted @ 2017-09-05 17:05 流氓剑客 阅读(1428) 评论(0) 推荐(0)
摘要:redis是基于key-value结构存储的,且数据存放在内存中,相对数据库读写较快。 基于redis的优势,将redis中存放用户数据,用户第一次登录时,将用户数据从数据库存放redis中,也可以将用户认证状态、是否是会员、是否加盟,等角色信息存放在redis中,用户再次访问某一个功能块时,需要验 阅读全文
posted @ 2017-09-05 14:39 流氓剑客 阅读(242) 评论(0) 推荐(0)
摘要:通过solr的domain-import,将mysql的数据通过查询,导入到solr中。java通过使用solrj,链接solr,调用domaininport,并将分页参数设置到domain-import中(防止查询所有数据),通过线程sleep,查询solr导入情况,如果导入成功,则继续导入下一页 阅读全文
posted @ 2017-09-05 14:31 流氓剑客 阅读(425) 评论(0) 推荐(0)
摘要:一、synchronized 这货可以锁对象,锁变量,锁方法,锁代码,好像什么都能锁,缺点就是如果一个锁堵了,其他的只能等待忙并不能把当前的锁给释放。二、 ReentrantLockReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性和内存语义,但是添加了类 阅读全文
posted @ 2017-09-05 13:45 流氓剑客 阅读(130) 评论(0) 推荐(0)