go语言中实现类似ThreadLocal的功能

itwarcraft 发布于 2015/01/18 21:48
阅读 767
收藏 0

周末没事,打算试试用go语言实现一个shiro,简单化,api尽量保持一致
遇到一个问题,在shiro中SecurityUtils.getSubject();得到的subject是与当前线程中绑定的,在java中是使用ThreadLocal绑定的,当前的线程是使用Thread.currentThread()得到的,而currentThread()是使用native方法得到的。
那么如果实现相似的功能么?go源码中没有找到类似的api。
由于go与java的模型不尽相同,直接套用显示不合适。
考虑使用session,但是用session,则需要记住sessionid,有其他的解决方案么?
求大神帮助。 @特价萝卜 @lunny @无闻
ps:忽然想到,不行的话,使用登陆用户的name做加密后,作为sessionid来使用,是否可行?

加载中
0
无闻
无闻

你说的 shiro 和 java 实在没接触过,不过就 session 来说,你的方案应该是可行的。

无闻
无闻
回复 @itwarcraft : 客气~学习了 :smile:
itwarcraft
itwarcraft
shiro是通用权限管理框架. 3Q.最终还是使用session类似的解决方案吧.
0
lunny
lunny

可以试试 runtime.LockOSThread()

itwarcraft
itwarcraft
看了下api,runtime.LockOSThread()是锁定主线程,与业务不太一样. 还是采用session类似的机制处理了. 感觉对于这个理解还是不够的.
返回顶部
顶部