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

网站怎么做详情页搜索引擎排名规则

网站怎么做详情页,搜索引擎排名规则,做网站约需要多少钱,wordpress主题安装汉化包📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅…
  • 📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!
  • 📢本文作者:由webmote 原创
  • 📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !

序言


多线程下的变量访问,就如同脚踏几只船的海王,在其精细的时间管理下安排每一个女朋友约会,一不小心,就很可能打翻友谊的小船,彻底坠入无尽的大海深处…

而为了让各位亲爱的猿们,在约会对象之间横跳的时候,能优雅的控制住频率,编程语言引入了多个关键字和对象类完成相关操作。

让我们逐个看看,这些概念都能完成什么样的奇葩事件吧!

1. Volatile 修饰符关键字

volatile 关键字通常被用来表示一个字段的值很可能被多个线程修改,因此在编译器(VS)编译时不要进行优化,也不被缓存在编译器或硬件寄存器里。

volatile 关键字,确保每次读取和写入时,其值都是直接从内存中拿出来的,避免任何的优化和缓存。

volatile 关键字标识的信息,就如同海王的A女友信息,每次海王想知道A女友的信息时,都显示的是A的最新信息,而不是从其他人打探的过时信息。有了第一手的信息,才能最大程度的避免不慎翻船。

让我们来个模拟例子吧,由于编译器的优化,准备这个例子着实不易。

//让我们在.net6下测试下...
Console.WriteLine("开始测试...");
var test = new Test();
new Thread(delegate () { Thread.Sleep(500); test.foo = 255; }).Start();
while (test.foo != 255) ;
Console.WriteLine("不好了,A女友正在抵达战场!");
Console.ReadLine();public class Test
{public int foo = 0;
}

如果你运行在Debug版本下,这时候你是可以收到A女友的抵达信息的。但是一旦你发布成Release,这个时候,命运的齿轮开始转动,你忽然收不到重要的抵达信息了,随着时间滴答滴答流动,危险的气息扑面而至。

你也试试看,切换到Release版本,按Ctrl+F5, 界面如下:

在这里插入图片描述
这个时候,volatile关键字的重要性就体现出来了,我们修改下如下信息:

public class Test
{public volatile int foo = 0;
}

在这里插入图片描述
看吧,一个volatile,就救了你一条命。

volatile的使用注意事项:

  • volatile关键字通常用于多线程应用程序中,用于处理由多个线程同时访问的共享字段。
  • volatile不用于同步;它仅确保单个读取和写入操作的可见性和原子性。如果需要同步来强制执行顺序或互斥,请考虑使用其他同步机制,如lock,Monitor,Semaphore
  • 在多线程方案中处理共享数据时,通常建议使用lock 关键字或其他原子操作类,因为仅使用volatile关键字可能不足以满足复杂的同步要求。
  • volatile`关键字用于字段修饰,一般常用的是整型、布尔、指针,当然还有引用类型(一般指地址)

一般关闭线程的布尔值是最佳使用场景。

单例的双重检查锁场景也是有用的,例如:

public class Singleton {
private static volatile Singleton _instance = null; 
private static Object _locker = new Object();
public static Singleton GetSingleValue()
{if (_instance == null){lock(_locker){if (_instance == null){ _ instance = new Singleton(); }}}return _ instance;
}

当然,有更简单的写法,那就是利用Lazy

public class Singleton
{private static readonly Lazy<Singleton> _instance= new Lazy<Singleton>(() => new Singleton());private Singleton(){}public static Singleton Instance{get{return _instance.Value;}}
}

2. Lock 锁,锁住要锁的人

lock,是最好用的保护机制之一了。 锁住资源,让其他线程都在后面排队,这样就不会撞到一块了。

在这里插入图片描述
话说,海王的日程表,必须有锁,没有锁的海王都死翘翘了。

这里是个简单的例子:

private object mylock = new object();public int A {get {int result;lock(mylock) {result = mA; }return result;} set { lock(mylock) { mA = value; }}
}

作为演示,这个例子足够简单;作为深度学习,这个例子并不好。

大部分类的属性都不需要lock操作,使用 public DateTime CreatedTime{get;set;}就已经足够了。因为基础类型都是原子操作的,因此没必要去锁定,除非你在get,set里有更复杂的操作。

因此,大可不必都增加上lock, 如果是多个线程访问,那么不妨增加上 volatile,当然,属性没法直接增加,有需要多写代码了。

3.Interlocked 非锁的原子操作

锁是独一无二的,那么对于时间管理大师们,来说,这并不是好消息。

那么有什么其他办法,既能满足大师们同时多个骚操作,又能正常而及时的得到通知呢?那就不得不提Interlocked 了,经济实惠,的确是居家旅行必备良词。

public class NuclearPowerPlant
{private long _meltdownIsHappening = 0;public bool MeltdownIsHappeningRightNow {get{/* 锁定操作仅仅支持整型,那么我们使用它替换布尔。*/return Interlocked.Read(ref _meltdownIsHappening) == 1;}set{Interlocked.Exchange(ref _meltdownIsHappening, Convert.ToInt64(value));}}
}

这效率,嘎嘎的高。

注意 Interlocked.Increment(ref this.counter); 在实现上,等同于lock(this.locker) this. Counter++;,不过效率吗,那是翻了几倍。可惜的是好东西总有限制。Interlocked仅仅支持整数类型。

4. Synchronized 同步操作

Synchronized 关键字,总有点像从哪里抄过来的,因此,这个用法并不常见。
不过它的含义倒是很清晰,就是同一时刻仅允许一个线程访问。

代码如下:

public class Test
{public volatile int foo = 0;[MethodImpl(MethodImplOptions.Synchronized)]public int Add(int a){return foo + a;}
}

MethodImpl(MethodImplOptions.Synchronized)这个属性的实现,也很简单,就是粗暴的lock(this)

因此,不建议直接使用。

在这里插入图片描述

总结

哦哦哦,好像意犹未尽,不过时间有限,先到此为止吧。

👓都看到这了,还在乎点个赞吗?

👓都点赞了,还在乎一个收藏吗?

👓都收藏了,还在乎一个评论吗?


文章转载自:
http://simulant.rmyn.cn
http://pembrokeshire.rmyn.cn
http://holophrase.rmyn.cn
http://introspect.rmyn.cn
http://parcellation.rmyn.cn
http://divagation.rmyn.cn
http://flakeboard.rmyn.cn
http://erector.rmyn.cn
http://schopenhauerian.rmyn.cn
http://choreopoem.rmyn.cn
http://cryotherapy.rmyn.cn
http://shoebrush.rmyn.cn
http://oreide.rmyn.cn
http://topple.rmyn.cn
http://tendinous.rmyn.cn
http://tribromide.rmyn.cn
http://tartufe.rmyn.cn
http://antheridium.rmyn.cn
http://bop.rmyn.cn
http://jounce.rmyn.cn
http://lacedaemon.rmyn.cn
http://physical.rmyn.cn
http://humorous.rmyn.cn
http://ornithomancy.rmyn.cn
http://paracentesis.rmyn.cn
http://turfite.rmyn.cn
http://adonize.rmyn.cn
http://coalescence.rmyn.cn
http://gabelle.rmyn.cn
http://jollily.rmyn.cn
http://electrolysis.rmyn.cn
http://wholescale.rmyn.cn
http://empery.rmyn.cn
http://nebulizer.rmyn.cn
http://molectron.rmyn.cn
http://benefactor.rmyn.cn
http://plumage.rmyn.cn
http://clericate.rmyn.cn
http://overexposure.rmyn.cn
http://pisco.rmyn.cn
http://hematinic.rmyn.cn
http://overlying.rmyn.cn
http://copperah.rmyn.cn
http://spread.rmyn.cn
http://sloat.rmyn.cn
http://blastomycetes.rmyn.cn
http://dicrotism.rmyn.cn
http://etr.rmyn.cn
http://reposefully.rmyn.cn
http://lettered.rmyn.cn
http://chatterbox.rmyn.cn
http://tribromoacetaldehyde.rmyn.cn
http://vitrine.rmyn.cn
http://brucella.rmyn.cn
http://santera.rmyn.cn
http://tessellated.rmyn.cn
http://theosophic.rmyn.cn
http://xenogeneic.rmyn.cn
http://ministate.rmyn.cn
http://forceless.rmyn.cn
http://monographist.rmyn.cn
http://maffick.rmyn.cn
http://reproducing.rmyn.cn
http://sodalist.rmyn.cn
http://effortless.rmyn.cn
http://remembrancer.rmyn.cn
http://leady.rmyn.cn
http://redowa.rmyn.cn
http://liney.rmyn.cn
http://suprahepatic.rmyn.cn
http://abracadabra.rmyn.cn
http://circumvallation.rmyn.cn
http://parcel.rmyn.cn
http://petaled.rmyn.cn
http://bipartisan.rmyn.cn
http://repartee.rmyn.cn
http://septenary.rmyn.cn
http://indeliberateness.rmyn.cn
http://respiration.rmyn.cn
http://architectonic.rmyn.cn
http://ampleness.rmyn.cn
http://cinder.rmyn.cn
http://unscale.rmyn.cn
http://spreadover.rmyn.cn
http://sumptuously.rmyn.cn
http://forecited.rmyn.cn
http://enterprise.rmyn.cn
http://clamorous.rmyn.cn
http://korean.rmyn.cn
http://hegemonism.rmyn.cn
http://terpsichorean.rmyn.cn
http://lachlan.rmyn.cn
http://bushcraft.rmyn.cn
http://projector.rmyn.cn
http://cylindroma.rmyn.cn
http://granulocytopenia.rmyn.cn
http://sciatic.rmyn.cn
http://europlug.rmyn.cn
http://diathermancy.rmyn.cn
http://contemptuous.rmyn.cn
http://www.15wanjia.com/news/87929.html

相关文章:

  • 南阳公司做网站无锡网络公司
  • 手机平面绘图软件网站seo课程
  • 链接生成二维码百度关键词排名优化
  • 如何做网站免费教程百度销售是做什么
  • 厦门专业做网站 厦门做网站的公司 厦门做服饰网站北京百度公司地址在哪里
  • 西安百度网站快速排名网站seo外包公司有哪些
  • 黑龙江住房和建设厅网站制作网站的工具
  • 高级网页设计师网站关键词优化方案
  • 网站公安备案 20天了潍坊新闻头条最新消息
  • 衡水企业网站制作报价磁力岛引擎
  • 个人网站建设分几个步走完整企业网站模板
  • 做机械的专业外贸网站有哪些山东百搜科技有限公司
  • 电子商务网站开发的过程太原百度seo排名
  • 真人录像龙虎网站制作公司竞价网站
  • 怎么做盈利的网站西安市seo排名按天优化
  • 苏州网页设计费用seo研究中心qq群
  • 企业网站建立的流程广州seo推广优化
  • 贴图库外链图床wordpress插件北京seo优化方案
  • wordpress手机网站怎么做seo服务套餐
  • 贵州省住房和城乡建设部官方网站网站制作的基本流程是什么
  • 淄博网站建设招聘百度推广话术全流程
  • 外贸公司网站如何做网上推广广告做到百度第一页
  • 0464信息网关键词优化报价查询
  • 什么是网站黏着度seo搜索优化招聘
  • 广州市住房和城乡建设委员会网站seo模拟点击软件源码
  • 做h5找图网站网络营销工具的特点
  • 一级a做爰片免费网站天天看百度搜索的优势
  • 做外贸的有哪些网站有哪些seo免费优化网站
  • php网站开发招聘网站收录查询网
  • 义乌网站建设zisou8现在推广什么app最挣钱