当前位置: 首页 > news >正文

云南建设银行官方网站/做个网页价格多少

云南建设银行官方网站,做个网页价格多少,深圳龙岗做网站的公司,企业营销网站建设费用预算包含了sync.Mutex,sync.RWMutex,sync.Cond,sync.Map,sync.Once等demo sync.Mutex //讲解mutex import ("fmt""math/rand""sync""time" )type Toilet struct {m sync.Mutex } type Person struct {Name string }var DateTime "2…

包含了sync.Mutex,sync.RWMutex,sync.Cond,sync.Map,sync.Once等demo

sync.Mutex


//讲解mutex
import ("fmt""math/rand""sync""time"
)type Toilet struct {m sync.Mutex
}
type Person struct {Name string
}var DateTime = "2006-01-02 15:04:05"var otherThing = []string{"唱歌", "跳舞", "修仙"}func main() {t := &Toilet{}wg := sync.WaitGroup{}wg.Add(5)for i := 0; i < 5; i++ {go func(i int, t *Toilet, wg *sync.WaitGroup) {p := Person{Name: fmt.Sprintf("%d 号", i),}p.InToiletLock(t, wg)}(i, t, &wg)}wg.Wait()}func (p *Person) InToiletLock(t *Toilet, wg *sync.WaitGroup) {defer wg.Done()t.m.Lock()i := rand.Intn(5)fmt.Printf("%s 上厕所时间 %v\n", p.Name, time.Now().Format(DateTime))time.Sleep(time.Duration(i) * time.Second)t.m.Unlock()
}
func (p *Person) InToiletUnLock(wg *sync.WaitGroup) {defer wg.Done()i := rand.Intn(5)fmt.Printf("%s 上厕所时间 %v\n", p.Name, time.Now().Format(DateTime))time.Sleep(time.Duration(i) * time.Second)
}

在这里插入图片描述

sync.RWMutex

package mainimport ("fmt""math/rand""sync""time"
)type Cinema struct {rw *sync.RWMutex
}type Person struct {Name string
}type Admin struct {Name string
}func main() {//example01()exmples2()
}func (p *Person) SitDown(wg *sync.WaitGroup) {defer wg.Done()fmt.Printf("%s 观众坐下!\n", p.Name)
}func (p *Person) StartWatch() {fmt.Printf("%s 开始观看!\n", p.Name)i := time.Duration(rand.Intn(5) + 1)time.Sleep(i * time.Second)fmt.Printf("%s 观看结束!\n", p.Name)
}func (p *Person) WatchMovie(c *Cinema, wg *sync.WaitGroup, b chan int) {c.rw.RLock()//先坐下p.SitDown(wg)<-b//看电影p.StartWatch()c.rw.RUnlock()
}func (a *Admin) ChangeMovie(c *Cinema, wg *sync.WaitGroup) {defer wg.Done()c.rw.Lock()fmt.Printf("所有观众看完电影,%s管理员切换影片\n", a.Name)c.rw.Unlock()
}
func example01() {c := &Cinema{rw: &sync.RWMutex{}}a := &Admin{Name: "超人"}b := make(chan int)wg := sync.WaitGroup{}wg.Add(10)for i := 0; i < 10; i++ {go func(i int, c *Cinema, wg *sync.WaitGroup, b chan int) {p := Person{Name: fmt.Sprintf("%d 号观众", i),}p.WatchMovie(c, wg, b)}(i, c, &wg, b)}wg.Wait()fmt.Printf("所有观众入座,开始播放电影\n")close(b)wg.Add(1)go func(wg *sync.WaitGroup) {a.ChangeMovie(c, wg)}(&wg)wg.Wait()
}type Desk struct {rw     *sync.RWMutexSnacks int
}func (d *Desk) PlaceSnacks(wg *sync.WaitGroup) {defer wg.Done()d.rw.Lock()d.Snacks = 10time.Sleep(3 * time.Second)fmt.Printf("零食准备完毕...\n")d.rw.Unlock()
}
func (p *Person) GetSnacks(d *Desk, wg *sync.WaitGroup) {for !d.rw.TryRLock() {fmt.Printf("桌上没零食,%s 望眼欲穿\n", p.Name)time.Sleep(2 * time.Second)}d.rw.RUnlock()defer wg.Done()defer d.rw.Unlock()d.rw.Lock()if d.Snacks > 0 {fmt.Printf("%s 抢到零食,开心\n", p.Name)d.Snacks--return}fmt.Printf("%s 没抢到零食,难受\n", p.Name)
}
func exmples2() {d := Desk{rw: &sync.RWMutex{},}wg := sync.WaitGroup{}wg.Add(12)go d.PlaceSnacks(&wg)for i := 0; i < 11; i++ {p := Person{Name: fmt.Sprintf("%d 号猿猴", i),}go p.GetSnacks(&d, &wg)}wg.Wait()
}

sync.Cond

package main//sync.Cond进行学习import ("fmt""sync""time"
)var start = false
var done = falsefunc main() {wg := sync.WaitGroup{}wg.Add(10)m := &sync.Mutex{}c := sync.NewCond(m)for i := 0; i < 10; i++ {go Soliders(i, c, &wg)}go Waiter(c)Officer(c)wg.Wait()fmt.Println("所有大兵干完饭")CleanUp(c)time.Sleep(time.Second * 3)fmt.Println("打扫结束")
}func CleanUp(c *sync.Cond) {c.L.Lock()done = truec.L.Unlock()c.Signal()}
func Officer(c *sync.Cond) {fmt.Printf("长官准备中....\n")time.Sleep(time.Second * 5)c.L.Lock()start = truec.L.Unlock()c.Broadcast()
}func Soliders(i int, c *sync.Cond, wg *sync.WaitGroup) {defer wg.Done()c.L.Lock()fmt.Printf("大兵%d号等待干饭...\n", i)for !start {c.Wait()}fmt.Printf("大兵%d号开始干饭...\n", i)c.L.Unlock()
}func Waiter(c *sync.Cond) {c.L.Lock()for !done {c.Wait()}fmt.Println("用餐结束,开始打扫......")c.L.Unlock()return
}

sync.Map


func main() {m := make(map[int]int)for i := 0; i < 1000; i++ {go func(m map[int]int) {m[i] = i}(m)}
}func TestStore(t *testing.T) {var sum sync.Mapsum.Store("a", 1)//sum.Delete("a")val, ok := sum.Load("a")fmt.Println(val, ok)
}func TestLoadAndDelete(t *testing.T) {var smm sync.Mapsmm.Store("a", 1)val, loaded := smm.LoadAndDelete("a")fmt.Printf("value is %v,is exist %v \n", val, loaded)_, ok := smm.LoadAndDelete("a")fmt.Printf("value is ,is exist %v \n", ok)
}func TestLoadAndStore(t *testing.T) {var smm sync.Mapvalue, loaded := smm.LoadOrStore("a", 1)fmt.Printf("value is %v,is exist %v \n", value, loaded)value, loaded = smm.LoadOrStore("a", 2)fmt.Printf("value is %v,is exist %v \n", value, loaded)smm.Store("a", 3)value, loaded = smm.Load("a")fmt.Printf("value is %v,is exist %v \n", value, loaded)
}func TestRange(t *testing.T) {var smm sync.Mapfor i := 0; i < 10; i++ {go func(m *sync.Map, key int, value int) {m.Store(key, value)}(&smm, i, i)}time.Sleep(2 * time.Second)smm.Range(func(key, value interface{}) bool {fmt.Println(key, value)return true})
}

sync.pool

import ("bytes""log""net/http""runtime""sync""time"
)var pool = sync.Pool{New: func() interface{} { return new([]bytes.Buffer) }}func main() {var pool sync.Poolfor i := 0; i < 10; i++ {pool.Put(&http.Client{Timeout: time.Second * time.Duration(10),})}runtime.GC()runtime.GC()p := pool.Get()if p == nil {log.Fatal("p is nil")} else {pool.Put(p)}
}

sync.Once

package mainimport ("fmt""math/rand""sync""sync/atomic""testing""time"
)//主要涉及sync.Oncetype Config struct {Server stringPort   int64
}var (config       *Configonce         OncePowerinitedConfig uint32
)type OncePower struct {sync.Mutexdone uint32
}func init() {rand.Seed(time.Now().UnixNano())
}
func (p *OncePower) Do(fun func() error) error {if atomic.LoadUint32(&p.done) == 0 {return p.doSlow(fun)}return nil
}func (o *OncePower) doSlow(fun func() error) error {o.Lock()defer o.Unlock()if o.done == 0 {err := fun()if err != nil {return err}atomic.StoreUint32(&o.done, 1)}return nil
}
func initConfig() error {//randInt := rand.Intn(6)//if randInt > 2 {//	return errors.New("初始化失败了....")//}config = &Config{Server: "127.0.0.1",Port:   9999,}fmt.Println("init config....")if atomic.LoadUint32(&initedConfig) == 0 {atomic.StoreUint32(&initedConfig, 1)}return nil
}func ReadConfig(i int) *Config {fmt.Println("i >>>", i)err := once.Do(initConfig)fmt.Println("once err >>>", err)return config
}func TestSingleTon(t *testing.T) {wait := sync.WaitGroup{}for i := 0; i < 10; i++ {wait.Add(1)go func(i int) {defer wait.Done()_ = ReadConfig(i)}(i)}wait.Wait()
}func TestOnce(t *testing.T) {var once sync.OnceonceBody := func() {fmt.Println("only once")}done := make(chan bool)for i := 0; i < 10; i++ {go func() {once.Do(onceBody)done <- truefmt.Println("true done", i)}()}for i := 0; i < 10; i++ {<-done}
}

相关文章:

go的sync包学习

包含了sync.Mutex,sync.RWMutex,sync.Cond,sync.Map,sync.Once等demo sync.Mutex //讲解mutex import ("fmt""math/rand""sync""time" )type Toilet struct {m sync.Mutex } type Person struct {Name string }var DateTime "2…...

互联网上常见的,ip地址泛播什么意思

互联网上常见的&#xff0c;ip地址泛播什么意思&#xff01; 泛播通过将IP地址广播发送到网络中的所有设备&#xff0c;使得这些设备能够接收到相关信息。例如&#xff0c;DHCP服务器在局域网中广播提供IP地址的请求&#xff0c;以便新设备能够获取一个可用的IP地址。此外&…...

Linux/C高级(精讲)----shell结构语句、shell数组

shell脚本 功能性语句 test 可测试对象三种&#xff1a;字符串 整数 文件属性 每种测试对象都有若干测试操作符 1&#xff09;字符串的测试&#xff1a; s1 s2 测试两个字符串的内容是否完全一样 s1 ! s2 测试两个字符串的内容是否有差异 -z s1 测试s1 字符串的长度是…...

14.kafka开机自启动配置

要在Linux(RHEL7.7)系统中设置kafka开机自启动&#xff0c;可以创建一个系统服务单元文件。以下是为详细配置部署&#xff0c;假设你已经安装了kafka并且可以通过kafka-server-start.sh命令启动它。 1.进入/lib/systemd/system目录 命令&#xff1a; cd /lib/systemd/system…...

11 享元(Flyweight)模式

享元模式 1.1 分类 &#xff08;对象&#xff09;结构型 1.2 提出问题 做一个车管所系统&#xff0c;将会产生大量的车辆实体&#xff0c;如果每一个实例都保存自己的所有信息&#xff0c;将会需要大量内存&#xff0c;甚至导致程序崩溃。 1.3 解决方案 运用共享技术有效…...

PHP JSON操作指南

PHP JSON操作指南 概述 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。PHP作为一门流行的服务器端脚本语言&#xff0c;支持对JSON数据进行读取、编写和解析。本文将…...

【学习笔记】计算机图形学的几何数学基础知识

3D坐标系 左手系和右手系 点 x,y,z与w(齐次坐标) 矩阵 第一个下标表示行号,第二个下标表示列号。矩阵乘法不满足交换律矩阵乘法=矩阵合并一个矩阵乘以它的逆矩阵=单位矩阵变化矩阵 平移矩阵 缩放矩阵 除了可以缩放, 还可以利用缩放,在给定右手系的情况确定左手系…...

Python因为网络原因安装依赖库报错

现象 在终端运行以下指令 pip install pyautogui pillow keyboard 出现报错&#xff0c;终端信息如下&#xff1a; PS D:\code\Python> pip install pyautogui pillow keyboard Collecting pyautoguiUsing cached PyAutoGUI-0.9.54.tar.gz (61 kB)Installing build depe…...

什么是卸荷器?风力发电为什么要用卸荷器

目前市场上&#xff0c;那些功率低于400W的小型风力发电机&#xff0c;普遍缺乏刹车、稳速或限速机制。只要有足够的风力&#xff0c;发电机便会开始转动并产生电力。风力越强&#xff0c;转速就越快&#xff0c;这可能导致发电机因转速过高而损坏&#xff0c;甚至发生风机头飞…...

SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者

SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者 文章目录 目录 前言 一、启动SQL server服务的三种方法 1.不启动SQL server服务的影响 2.方法一&#xff1a;利用cmd启动SQL server服务 3.方法二&#xff1a;利用SQL Serv…...

大数据学习之Spark分布式计算框架RDD、内核进阶

一.RDD 28.RDD_为什么需要RDD 29.RDD_定义 30.RDD_五大特性总述 31.RDD_五大特性1 32.RDD_五大特性2 33.RDD_五大特性3 34.RDD_五大特性4 35.RDD_五大特性5 36.RDD_五大特性总结 37.RDD_创建概述 38.RDD_并行化创建 演示代码&#xff1a; // 获取当前 RDD 的分区数 Since ( …...

Unity 加载OSGB(webgl直接加载,无需转换格式!)

Unity webgl加载倾斜摄影数据 前言效果图后续不足 前言 Unity加载倾斜摄影数据&#xff0c;有很多的插件方便好用&#xff0c;但是发布到网页端均失败&#xff0c;因为webgl 的限制&#xff0c;IO读取失效。 前不久发现一个开源项目: UnityOSGB-main 通过两种方式在 Unity 中…...

tcp/ip网络协议,tcp/ip网络协议栈

TCP/IP网络协议和TCP/IP网络协议栈是互联网通信的基石&#xff0c;它们定义了电子设备如何连入因特网以及数据如何在它们之间传输的标准。以下是对TCP/IP网络协议和TCP/IP网络协议栈的详细解释&#xff1a; 一、TCP/IP网络协议 TCP/IP&#xff08;Transmission Control Proto…...

【Debug】the remote host closed the connection错误信息分析

出现的情况说明&#xff1a;QT软件。刚开始都可以连接成功 之后连接 断开几次 就会出现连接失败 错误信息是the remote host closed the connection。the remote host closed the connection广泛原因分析 这个错误通常意味着远端 STM32 服务器主动关闭了连接。可能的原因包括&a…...

SpringBoot扩展篇:@Scope和@Lazy源码解析

SpringBoot扩展篇&#xff1a;Scope和Lazy源码解析 1. 研究主题及Demo2. 注册BeanDefinition3. 初始化属性3.1 解决依赖注入3.2 创建代理 ContextAnnotationAutowireCandidateResolver#getLazyResolutionProxyIfNecessary3.3 代理拦截处理3.4 单例bean与原型bean创建的区别 4. …...

“AI隐患识别系统,安全多了道“智能护盾”

家人们&#xff0c;在生活和工作里&#xff0c;咱们都知道安全那可是头等大事。不管是走在马路上&#xff0c;还是在工厂车间忙碌&#xff0c;又或是住在高楼大厦里&#xff0c;身边都可能藏着一些安全隐患。以前&#xff0c;发现这些隐患大多靠咱们的眼睛和经验&#xff0c;可…...

通向AGI之路:人工通用智能的技术演进与人类未来

文章目录 引言:当机器开始思考一、AGI的本质定义与技术演进1.1 从专用到通用:智能形态的范式转移1.2 AGI发展路线图二、突破AGI的五大技术路径2.1 神经符号整合(Neuro-Symbolic AI)2.2 世界模型架构(World Models)2.3 具身认知理论(Embodied Cognition)三、AGI安全:价…...

论文阅读:InstanceDiffusion: Instance-level Control for Image Generation

CVPR2024文章 摘要&#xff1a; 文本到图像扩散模型产生高质量的图像&#xff0c;但不提供对图像中单个实例的控制。我们引入了InstanceDiffusion&#xff0c;它将精确的实例级控制添加到文本到图像扩散模型中。InstanceDiffusion 支持每个实例的自由形式的语言条件&#xff…...

7.攻防世界 wzsc_文件上传

打开题目页面如下 上传了一张带有木马的图片 返回的页面是空白的&#xff0c;不过路径变了 猜测存在根目录/upload 也可以通过dirsearch扫描根目录 命令&#xff1a; dirsearch -u http://61.147.171.105:65024/ -e* 终于得到了上传的文件的信息 但是测试发现.php文件以及.…...

以为是响应式对象丢失导致数据没有回显

背景&#xff1a;之前ruoyi生成的vue2代码&#xff0c; <el-form ref“form”&#xff0c;后面我改成vue3的写法&#xff0c;没有实例化form&#xff0c; 在vue3中是需要定义const form ref(); 导致点击了修改后&#xff0c;页面弹框显示出来&#xff0c;数据没有回显。 一直…...

来 Gitcode 免费体验 DeepSeek 蒸馏模型,开启 AI 探索新旅程

在 AI 技术飞速发展的时代&#xff0c;你是否也怀揣着对前沿科技的无限好奇与探索欲望&#xff1f;然而&#xff0c;昂贵的模型体验费用和复杂的操作流程&#xff0c;是不是让你一次次望而却步&#xff1f;现在&#xff0c;这些都不再是问题&#xff01;DeepSeek 蒸馏模型现已强…...

2.Mkdocs配置说明(mkdocs.yml)【最新版】

官方文件&#xff1a;Changing the colors - Material for MkDocs 建议详细学习一下上面的官方网站↑↑↑ 我把我目前的配置文件mkdocs.yml代码写在下面&#x1f447;&#x1f3fb; #[Info] site_name: Mkdocs教程 #your site name 显示在左上角 site_url: http://wcowin.wo…...

云轴科技ZStack+海光DCU:率先推出DeepSeek私有化部署方案

针对日益强劲的AI推理需求和企业级AI应用私有化部署场景&#xff08;Private AI&#xff09;&#xff0c;云轴科技ZStack联合海光信息&#xff0c;共同推动ZStack智塔全面支持DeepSeek V3/R1/Janus Pro系列模型&#xff0c;基于海光DCU实现高性能适配&#xff0c;为企业提供安全…...

扩增子分析|零模型2——基于βNTI的微生物随机性和确定性装配过程(箱线图和柱状图R中实现)

一、引言 我们之前发布的周集中老师团队零模型R中实战案例&#xff1a;扩增子分析|基于零模型的群落确定性和随机性构建过程——R实战_bmntd-CSDN博客。在文末只输出了一个.csv 表格。并没有提供绘图的方法&#xff0c;有小伙伴问如何在R中一键成图呢&#xff1f;还真可以&…...

专题:剑指offer

链表 JZ6 从尾到头打印链表 思路&#xff1a;先顺序输出到栈里面 然后再以此从栈顶弹出即可 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ #include …...

DeepSeek 部署过程中的问题

文章目录 DeepSeek 部署过程中的问题一、部署扩展&#xff1a;docker 部署 DS1.1 部署1.2 可视化 二、问题三、GPU 设置3.1 ollama GPU 的支持情况3.2 更新 GPU 驱动3.3 安装 cuda3.4 下载 cuDNN3.5 配置环境变量 四、测试 DeepSeek 部署过程中的问题 Windows 中 利用 ollama 来…...

DeepSeek R1本地化部署 Ollama + Chatbox 打造最强 AI 工具

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; Ollama &#x1f98b; 下载 Ollama&#x1f98b; 选择模型&#x1f98b; 运行模型&#x1f98b; 使用 && 测试 二&#xff1a;&#x1f525; Chat…...

应急场景中的数据融合与对齐

1. 概述 在应急管理中,快速、准确地掌握现场状况、实时监控灾情并进行决策至关重要。各类数据(如卫星影像、无人机图像、激光雷达点云、地理信息系统(GIS)数据、传感器数据、社交媒体信息、移动终端数据等)具有来源广泛、格式多样、时空特性不同等特点。如何将这些异构数…...

手机上运行AI大模型(Deepseek等)

最近deepseek的大火&#xff0c;让大家掀起新一波的本地部署运行大模型的热潮&#xff0c;特别是deepseek有蒸馏的小参数量版本&#xff0c;电脑上就相当方便了&#xff0c;直接ollamaopen-webui这种类似的组合就可以轻松地实现&#xff0c;只要硬件&#xff0c;如显存&#xf…...

Mellanox网卡信息查看

1、查看Mellanox网卡的SN&#xff08;序列号&#xff09;和PN mstvpd 04:00.0或者lspci -s 04:00.0 -vvv来自https://enterprise-support.nvidia.com/s/article/MLNX2-117-2532kn 2、查看Mellanox网卡驱动、固件版本 ethtool -i ens6np0...