并发安全基本类型。
使用场景:gtype
使用得非常频繁,任何需要并发安全的场景下都适用。
在普通的并发安全场景中,一个基本类型的变量,特别是一个struct
含有若干的属性,往往使用互斥(读写)锁或者多把(读写)锁来进行安全管理。 但这样的使用中,变量/struct
/属性的操作性能十分低下,且由于互斥锁机制的存在往往使得操作变得相当复杂,必须小心翼翼地维护好变量/属性的并发安全控制(特别是(RW)Mutex
)。
gtype
针对于最常用的基本数据类型,提供了对应的并发安全数据类型,便于在并发安全场景下更好地维护变量/属性,开发者无需在struct
中再创建和维护繁琐的(RW)Mutex
。由于gtype
维护的是基本类型的并发安全,因此内部基本都使用了atomic
原子操作来维护并发安全性,因此效率往往会比(RW)Mutex
互斥锁高出数十倍。
使用方式:
import "github.com/gogf/gf/v2/container/gtype"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/container/gtype
基本使用package mainimport ("github.com/gogf/gf/v2/container/gpool""fmt""time")func main () {// 创建一个对象池,过期时间...
每个视图必须要做的只有两件事:返回一个包含被请求页面内容的 HttpResponse 对象,或者抛出一个异常,比如 Http404 。...
Web 应用的常见任务是根据用户输入查出数据库中的数据。在一个简单例子中,会是通过分类筛选一个对象列表。一个更复杂的用例可能...
WebSecurity 属性 - HasUserIdWebSecurity 对象定义 HasUserId 属性是一个布尔值,指示当前用户在 WebSecurity 数据库中是否具有...
WebSecurity - RequireAuthenticatedUser()WebSecurity 对象定义 如果当前用户未通过身份验证,RequireAuthenticatedUser() 方法...