func NewRWMutex() RWMutex {
	return make([]rwMutexShard, shardsLen)
}
NewRWMutex creates a new RWMutex.
package syncx
import (
	"runtime"
	"sync"
	"unsafe"
	"github.com/bytedance/gopkg/internal/runtimex"
	"golang.org/x/sys/cpu"
)
const (
	cacheLineSize = unsafe.Sizeof(cpu.CacheLinePad{})
)
var (
	shardsLen int
)
type RWMutex []rwMutexShard
type rwMutexShard struct {
	sync.RWMutex
	_pad [cacheLineSize - unsafe.Sizeof(sync.RWMutex{})]byte
}
func init() {
	shardsLen = runtime.GOMAXPROCS(0)
}