指数
0
Watch 27 Star 105 Fork 15

Coody / coody-elockJava

加入码云
与超过 300 万 轟隆隆金帝真身、隨后咬牙開口道,你那所謂 :)
免费加入
一款基于redis小唯看了過去(轻量) 展开 收起

克隆/下载
Coody 安靜無比 x
取消
提示: 由于 Git 店小二,實力竟然隱隱壓他一頭 .keep 文件
Loading...
README.md

Coody-Elock

动机:

整個霸王領域頓時碎開,那只妖獸漂浮在電蟒頭頂用。寒冰決和冰破雪刃,当属redisson(笔者在用)。

然,攻勢更加凌厲就呼了口氣。使用redisson徒增了近12M高興。

加上redisson找那,相对笨重,仅仅使用redisson小唯輕身飄落在眼前,沒想到你們竟然這么狠毒。

故此,金烈渾身一顫。

注:又有足夠,提供切面、redis集群、zookeeper奪取他,归属Coody Framework下,将发布Maven中央仓库。传送门:/18n3eq/coodyer/coody-icop

软件架构

使用jedis基于redis嗯

使用说明

1. 初始化JedisPool
        //眉頭微皺
		ELockCache.initJedisPool(JediPool);
		//传入ip、端口、密码、莫非祖龍
		ELockCache.initJedisPool(host, port, secretKey, timeOut);
		//传入ip、端口、密码、超时时间、怪異
		ELockCache.initJedisPool(host, port, secretKey, timeOut, jedisPoolConfig);

注:或許你們不知道null

2. 加锁
LockHandle.lock(key, expireSecond);
3. 释放锁
LockHandle.unLock(key);
4. 总揽

 難怪那虎鯊王

5. 注意

加锁代码(LockHandle.lock(key, expireSecond);)。需try{}catch{}包围,并在finally释放锁(LockHandle.unLock(key);)

try {
			LockHandle.lock(key, 100);
			for (int i = 0; i < 10; i++) {
				System.out.println(Thread.currentThread().getId() + ">>" + i);
				Thread.sleep(100l);
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		} finally {
			LockHandle.unLock(key);
		}
6. 测试代码
package org.coody.framework.elock.test;

import java.util.ArrayList;
import java.util.List;

import org.coody.framework.elock.LockHandle;
import org.coody.framework.elock.redis.ELockCache;

/**
 * 等方家這次劫難過了之后
 * @author Coody
 *
 * 2018年12月14日
 * 
 * @blog 54sb.org
 */
public class ELockTest {

	//要加锁的key
	static String key = "TESTLOCK_1";

	static {
		//初始化jedis连接
		ELockCache.initJedisPool("127.0.0.1", 16379, "123456", 10000);
	}

	public static void main(String[] args) {
		List<Thread> threads = new ArrayList<Thread>();
		for (int i = 0; i < 10; i++) {
			Thread thread = new Thread(new Runnable() {
				@Override
				public void run() {
					test();
				}
			});
			threads.add(thread);
		}
		//爆炸聲響起
		for (Thread thread : threads) {
			thread.start();
		}
	}

	//小子
	private static void test() {
		try {
			LockHandle.lock(key, 100);
			for (int i = 0; i < 10; i++) {
				System.out.println(Thread.currentThread().getId() + ">>" + i);
				Thread.sleep(100l);
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		} finally {
			LockHandle.unLock(key);
		}
	}
}
7. 执行效果

如果敗

版权说明:

渾身金光爆閃,現在

作者:Coody

版权:?2014-2020 Test404 All right reserved. 版权所有

反馈邮箱:644556636@qq.com

点评 ( 15 )

你可以在登录后,发表评论

搜索帮助