syncx

package
v0.11.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2025 License: Apache-2.0 Imports: 7 Imported by: 2

Documentation

Overview

* @Author: kamalyes 501893067@qq.com * @Date: 2025-01-05 15:27:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-01-05 15:27:15 * @FilePath: \go-toolbox\pkg\syncx\clone.go * @Description: * * Copyright (c) 2025 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2024-12-13 13:05:03 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-01-08 15:15:59 * @FilePath: \go-toolbox\pkg\syncx\lock.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-11 13:08:58 * @FilePath: \go-toolbox\pkg\syncx\map.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2024-11-09 01:15:05 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-11 13:08:58 * @FilePath: \go-toolbox\pkg\syncx\set.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2025-01-08 13:55:22 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-01-08 13:55:22 * @FilePath: \go-toolbox\pkg\syncx\wg.go * @Description: 自定义的 WaitGroup 结构体,封装了 sync.WaitGroup,用于管理并发操作的等待。 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyMeta

func CopyMeta(src, dst map[string]string)

CopyMeta 复制 src 中的所有键值对到 dst 中。 如果 dst 为 nil,则不进行任何操作。

func DeepCopy added in v0.11.27

func DeepCopy(dst, src interface{}) error

DeepCopy 复制源值到目标值

@params dst: 目标值的指针,表示要将源值复制到的位置。必须是一个指向某种类型的指针。 @params src: 源值的指针,表示要复制的原始数据。也必须是一个指向某种类型的指针。

@return:

如果成功,返回 nil;如果源值为 nil,返回一个错误。

func MetaMapToString

func MetaMapToString(meta map[string]string) string

MetaMapToString 将 map 转换为 meta 字符串

func MetaStringToMap

func MetaStringToMap(meta string) map[string]string

MetaStringToMap 将 meta 字符串转换为键值对的 map

func WithLock added in v0.11.20

func WithLock(lock Locker, operation func())

WithLock 是一个通用的函数,用于在给定的锁上执行操作

func WithLockReturn added in v0.11.23

func WithLockReturn[T any](lock Locker, operation func() (T, error)) (T, error)

WithLockReturn 是一个支持返回值的函数,用于在给定的锁上执行操作

func WithRLock added in v0.11.28

func WithRLock(lock RLocker, operation func())

WithRLock 是一个用于在给定的读锁上执行操作的函数

func WithRLockReturn added in v0.11.28

func WithRLockReturn[T any](lock RLocker, operation func() (T, error)) (T, error)

WithRLockReturn 是一个支持返回值的函数,用于在给定的读锁上执行操作

Types

type Locker added in v0.11.20

type Locker interface {
	Lock()
	Unlock()
}

Locker 是一个接口,定义了锁定和解锁的方法

type Map

type Map[K comparable, V any] struct {
	// contains filtered or unexported fields
}

Map 是一个线程安全的映射,使用泛型 K 和 V。

func NewMap

func NewMap[K comparable, V any]() *Map[K, V]

NewMap 创建一个新的 Map 实例。

func (*Map[K, V]) Clear added in v0.11.6

func (m *Map[K, V]) Clear()

Clear 清空 Map 中的所有键值对

func (*Map[K, V]) Clone added in v0.11.15

func (m *Map[K, V]) Clone() *Map[K, V]

Clone 克隆当前 Map 实例,返回一个新的 Map 实例

func (*Map[K, V]) CompareAndDelete

func (m *Map[K, V]) CompareAndDelete(key K, value V) bool

CompareAndDelete 比较指定键的值,如果相等则删除该键的值。

func (*Map[K, V]) CompareAndSwap

func (m *Map[K, V]) CompareAndSwap(key K, old, new V) bool

CompareAndSwap 比较指定键的现有值,如果相等则将其替换为新值。

func (*Map[K, V]) Delete

func (m *Map[K, V]) Delete(key K)

Delete 删除指定键的值。

func (*Map[K, V]) Equals

func (m *Map[K, V]) Equals(key K, value V, cmpFunc func(existing V) bool) bool

Equals 函数用于比较两个键值对是否相等, 需要用户提供自定义的比较函数。

func (*Map[K, V]) Keys added in v0.11.6

func (m *Map[K, V]) Keys() []K

Keys 返回所有键的切片

func (*Map[K, V]) Load

func (m *Map[K, V]) Load(key K) (V, bool)

Load 获取指定键的值。

func (*Map[K, V]) LoadAndDelete

func (m *Map[K, V]) LoadAndDelete(key K) (V, bool)

LoadAndDelete 方法从 Map 中加载并删除指定键的值

func (*Map[K, V]) LoadOrStore

func (m *Map[K, V]) LoadOrStore(key K, new V) (V, bool)

LoadOrStore 获取指定键的值,如果不存在则存储新值。

func (*Map[K, V]) Range

func (m *Map[K, V]) Range(run func(key K, value V) bool)

Range 遍历 Map 中的所有键值对。

func (*Map[K, V]) Size added in v0.11.6

func (m *Map[K, V]) Size() int

Size 返回当前 Map 中元素的数量

func (*Map[K, V]) Store

func (m *Map[K, V]) Store(key K, value V)

Store 设置指定键的值。

func (*Map[K, V]) Swap

func (m *Map[K, V]) Swap(key K, value V) (pre V, ok bool)

Swap 替换指定键的值,并返回之前的值。

func (*Map[K, V]) Values added in v0.11.6

func (m *Map[K, V]) Values() []V

Values 返回所有值的切片

type RLocker added in v0.11.28

type RLocker interface {
	RLock()
	RUnlock()
}

RLocker 是一个接口,定义了读锁和解锁的方法

type Set added in v0.11.6

type Set[K comparable] struct {
	// contains filtered or unexported fields
}

Set 是一个线程安全的集合,使用 Map 实现。

func NewSet added in v0.11.6

func NewSet[K comparable]() *Set[K]

NewSet 创建一个新的 Set 实例。

func (*Set[K]) Add added in v0.11.6

func (s *Set[K]) Add(key K)

Add 向集合中添加一个元素。

func (*Set[K]) AddAll added in v0.11.6

func (s *Set[K]) AddAll(keys ...K)

AddAll 向集合中添加多个元素。

func (*Set[K]) Clear added in v0.11.6

func (s *Set[K]) Clear()

Clear 清空集合中的所有元素。

func (*Set[K]) Delete added in v0.11.6

func (s *Set[K]) Delete(key K)

Delete 从集合中删除指定的元素。

func (*Set[K]) DeleteAll added in v0.11.6

func (s *Set[K]) DeleteAll(keys ...K)

DeleteAll 从集合中删除多个元素。

func (*Set[K]) Elements added in v0.11.6

func (s *Set[K]) Elements() []K

Elements 返回集合中的所有元素。

func (*Set[K]) Has added in v0.11.6

func (s *Set[K]) Has(key K) bool

Has 检查集合中是否存在指定的元素。

func (*Set[K]) HasAll added in v0.11.6

func (s *Set[K]) HasAll(keys ...K) (existing []K, all bool)

HasAll 检查集合中是否包含所有指定的元素。

func (*Set[K]) IsEmpty added in v0.11.6

func (s *Set[K]) IsEmpty() bool

IsEmpty 检查集合是否为空。

func (*Set[K]) Size added in v0.11.6

func (s *Set[K]) Size() int

Size 返回集合中元素的数量。

type WaitGroupWithMutex added in v0.11.28

type WaitGroupWithMutex struct {
	// contains filtered or unexported fields
}

WaitGroupWithMutex 结构体封装了 sync.WaitGroup

func (*WaitGroupWithMutex) Add added in v0.11.28

func (w *WaitGroupWithMutex) Add(delta int)

Add 方法增加等待组的计数

func (*WaitGroupWithMutex) Done added in v0.11.28

func (w *WaitGroupWithMutex) Done()

Done 方法减少等待组的计数

func (*WaitGroupWithMutex) Wait added in v0.11.28

func (w *WaitGroupWithMutex) Wait()

Wait 方法阻塞直到等待组计数为零

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL