seo网站优化怎么做微信公众号如何做网站

web/2025/10/1 20:28:28/文章来源:
seo网站优化怎么做,微信公众号如何做网站,权威发布红底图片,坂田网站建设写这篇文章之前#xff0c;我去百度了一下啥叫锁#xff0c;百度百科上写道#xff1a;置于可启闭的器物上#xff0c;以钥匙或暗码开启。确实我们一般理解的锁就是门锁#xff0c;密码锁#xff0c;但是在计算机科学中#xff0c;锁又是啥#xff0c;说实话#xff0…写这篇文章之前我去百度了一下啥叫锁百度百科上写道置于可启闭的器物上以钥匙或暗码开启。确实我们一般理解的锁就是门锁密码锁但是在计算机科学中锁又是啥说实话这个问题我也思考了很久也没法很好的用一两句话就让人听得明白也不想有人看到我的文章然后将我的结论当作答案我觉得最好的答案还是在探索的过程中得到的接下来我们就好好探索一番。作为一名java程序员最开始接触到的锁就是synchronized书本上是这么写的老师也是这么说的至于为啥叫锁可能也没多少人真的去思考过。不知道有没有同学和我一样经历过只知道用synchronized后来逐渐的了解ReentrantLock,读写锁然后又了解了aqs,后来通过百度google,看一些博客(这个我要吐槽一下在学习过程中遇到过很多文章写的有问题的反而误导了我)后面看了看synchronized的源码最后对比synchronized和ReentrantLock才加深了对锁的一些认知(说实话作为一个刚毕业3年的非科班出身码农我也不敢保证自己写的就一定对算是学习过程中的一些感悟吧)那接下来我就按照学习顺序来逐渐展开。先来一段简单的synchronized使用代码public static voidmain(String[] args) {String s newString();synchronized(s) {TestJni jni newTestJni();jni.jniHello();}}上面代码做的事情很简单如下图所示有A B C D E多个线程同时来到synchronized包含的代码块A先一步进来了那么BCDE都得等等我A执行完他们才能进来执行。       synchronized用起来确实很简单,我们也可以放在方法上但是其本质还是锁的对象这个我们后面分析源码一看就知道了。随着开发时间越长synchronized在有些复杂场景下(如需要可中断可控制时间抢锁需要多个等待队列分别控制读写锁等场景的时候)无法满足我们的需求那么就要用到Lock,下面我们先介绍一下Lock的简单使用Lock lock newReentrantLock();lock.lock();try{System.out.println(线程Thread.currentThread().getName() 进来啦);}finally{lock.unlock();}上面是一种最简单的使用和synchronized作用是一样的,不过加锁之后必须要解锁且必须紧跟try - finally块解锁使用起来稍微复杂一点容易出错。我们再介绍一种可中断的使用方式public static voidmain(String[] args) {Thread thread new Thread(() -{try{lock.lockInterruptibly();try{testLock();}finally{lock.unlock();}}catch(Exception e){}});thread.start();thread.interrupt();}public static voidtestLock(){condition.signalAll();System.out.println(线程Thread.currentThread().getName() 进来啦);}这种方式呢在拿锁被park住了如果刚好这时候被打断了就会响应打断退出抢锁并抛出异常至于捕获到异常开发者怎么做那就得根据业务来分别处理了。而像可控制时间的其实就要稍微复杂一点先看一下synchronized中的使用static TestHash s newTestHash();public static voidmain(String[] args) {Thread thread1 new Thread(()-{testLock();});Thread thread2 new Thread(()-{synchronized(s) {try{TimeUnit.SECONDS.sleep(1);}catch(InterruptedException e) {}s.notify();testLock();}});thread1.start();thread2.start();}public static voidtestLock(){synchronized(s) {System.out.println(线程Thread.currentThread().getName() 进来啦);try{s.wait();System.out.println(线程Thread.currentThread().getName() 叫醒啦);}catch(InterruptedException e) {System.out.println(抛异常啦);}}}这个例子看着要比前面几个复杂一点首先thread1会进入testLock方法并拿到锁thread2等了1秒叫醒thread1(这里就是简单的wait/notify的使用)然后在拿到锁的情况下再次进入testLock方法并拿到锁由于没人唤醒了会一直卡在这里(这里证明了synchronized的可重入),结果我就不贴了感兴趣的可以拿着代码去试。而ReentrantLock的使用也差不多就是提前用lock去new一个Condition:static ReentrantLock lock newReentrantLock();static Condition condition lock.newCondition();public static voidmain(String[] args) {Thread thread1 new Thread(()-{testWaitSingal();},thread1);Thread thread2 new Thread(()-{lock.lock();try{TimeUnit.SECONDS.sleep(1);condition.signal();testWaitSingal();}catch(InterruptedException e) {}finally{lock.unlock();}},thread2);thread1.start();thread2.start();}public static voidtestWaitSingal(){lock.lock();try{System.out.println(线程Thread.currentThread().getName() 进来啦);condition.await();System.out.println(线程Thread.currentThread().getName() 叫醒啦);}catch(InterruptedException e) {System.out.println(抛异常啦);}finally{lock.unlock();}}可以看到两种用法基本上是一致的也就是将synchronized换成了lock,wait换成await,notify换成singal,总结:基本上我们平时用到的synchronized关键字的用法也就这些但lock锁不一样它还支持如上述的中断更复杂的读写锁还可以在aqs的基础上衍生出更多如countDownLatch,cyclicBarrier等可以支持我们做更多,但是不是lock就可以完全替代synchronized了呢其实synchronized也有自己的优点简单不易出错性能也不比lock差(有的书上写道synchronized性能比lock好但其实就算好也不会好太多对于我们来说基本上可以忽略)真要说选哪个我的建议是优先选synchronized如果有特殊业务特殊需求synchronized无法满足那当然是要用lock不过一定要记得释放锁哦。本来打算结合reentrant和synchronized直接串起来讲的但是确实有点多这一篇就当作是后面的引子吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设方网站登录流程

package 专题练习;import java.util.Scanner;public class marking_by_judges {//需求:在唱歌比赛中,有6名评委给选手打分,范围是[0,100]的整数.//选手最后得分为去掉最高分和最低分的平均分public static void main(String[] args) {//储存分数数组int[] score_six new int[6…

惠州做棋牌网站建设哪家公司收费合理树莓派做影视网站

一.表单伪造 之前一直用的 GET 请求方式,而表单可以实现 POST 方式,我们来实验下: 先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由; public function form() { return v…

做网站乱码灵宝seo公司

<自动自发> 第1章 序言 你属于哪种人&#xff1f; 我们经常会听到这些熟悉的话语&#xff1a; “现在是午餐时间&#xff0c;请您3点以后再打过来吧。” “那根本就不是我负责的工作。” “我现在很忙。” “那是汉曼的工作。” “我不知道该怎样帮助你。” “你去图书馆…

.net网站建设实例设置网站404

网站&#xff1a;http://www.sxdyc.com/visualsBoxHalfPlot 一、配对型的复杂箱线图简介 配对型的复杂箱线图原理与箱线图相同&#xff0c;常见于配对样本的数据分析中&#xff0c;在日常研究中&#xff0c;我们会碰到配对资料&#xff0c;例如同一病人治疗前后的变化&#xff…

网站建设错误代码50019室内装修网站

文章目录 数学函数函数使用 其它函数函数使用 数学函数 函数使用 其它函数 函数使用 user() 查询当前用户 database()显示当前正在使用的数据库 password()函数&#xff0c;MySQL数据库使用该函数对用户加密 md5(str)对一个字符串进行md5摘要&#xff0c;摘要后得到一个32…

商务网站建设工程师网站联盟广告

安装步骤 1、更新系统 apt update && apt upgrade && apt dist-upgrade 2、安装openvas apt-get install openvas 3、初始化 gvm-setup 时间要很久 4、检查安装结果 gvm-check-setup 安装成功 5、设置用户名和密码&#xff0c;都为admin sudo runuse…

建品牌网站公司中国空间站扩展

转载自 一次频繁Full GC的排查过程&#xff0c;根源居然是它... 业务部门的一个同事遇到个奇怪的 Full GC 问题&#xff0c;有个服务迁移到新的应用后&#xff0c;一直频繁 Full GC。新应用机器的配置是 4c 8g&#xff0c;老应用是 4c 4g&#xff0c;老应用 GC 都很正常&…

完备的网站建设wordpress排除分类目录文章

文章目录 1. SpinBox简介2. SpinBox使用2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. SpinBox简介 QSpinBox 用于整数的显示和输入&#xff0c;一般显示十进制数&#xff0c;也可以显示二进制、十六进制的数&#xff0c;而且可以在显示框中增加前缀或后缀。 QDoubleSpinBox…

中国住房和城乡建设部网站官网上海公司章程在哪里可以查询打印

MR混合现实技术是一种将虚拟现实与现实场景相融合的创新技术&#xff0c;可以广泛应用于各个领域。其中&#xff0c;混合现实情景实训教学是MR技术的一个重要应用场景。 在医学专业方面&#xff0c;医学生常常需要通过实际操作来提升自己的技能水平&#xff0c;然而传统的实训方…

设计优秀网站作品大连网络建站公司分析

php中文网最新课程 每日17点准时技术干货分享 针对 PHP 语言设置多域名允许跨域访问 服务器变量: 服务器变量存储在 $_SERVER 数组中,在这个数组中有一个特殊的键值:HTTP_ORIGIN。 这个键只在跨域的时候才会存在值,同源时为空字符串 响应头设置允许某域名访问:access-cont…

太仓网站优化网站导航怎么做的

大家都知道前端的下载除了最简单的a标签href&#xff0c;还有时候需要验证token&#xff0c;此时后台会给一个返回二进制的下载接口。如果你用ajax普通的get&#xff0c;post请求&#xff0c;接口会返回乱码。那么本文就带你封装一个处理二进制下载的方法。 1.设置responseTyp…

页面设计制作网站wordpress有商城吗

在分布式系统中&#xff0c;如果使用JVM中的同步锁在高并发的场景下仍然会产生线程安全问题。首先我们来查看在多个服务器时为什么会产生线程安全问题&#xff0c;有这样一个案例&#xff0c;有一件商品购买规则为一个用户只能购买一次&#xff0c;如果使用同步锁锁住用户id&am…

网站优化的主要任务喂来苏州网络科技有限公司

题目描述 现有N个任务需要处理&#xff0c;同一时间只能处理一个任务&#xff0c;处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值&#xff0c;在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限&#xff0c;请问在…

自助健站wordpress手机显示图片

前言 本文是该专栏的第39篇,后面会持续分享python的各种干货知识,值得关注。 在本专栏之前,有详细介绍使用python增加b站视频的播放量方法,感兴趣的同学可往前翻阅《Python-增加b站视频播放量》。而本文,笔者再来单独的详细介绍,通过python来获取b站视频的弹幕内容。如下…

服装网站栏目调研推介网手机版

在使用连续凸近似&#xff08;SCA&#xff09;求解优化问题时遇到了报错 Problem status : ILL_POSED Solution status : PRIMAL_ILLPOSED_CER并且最后给出的结果为NaN。 在CVX论坛中找到一条回答 具体链接如下&#xff1a; The status is failed 因为我使用的是CVX自带的…

公司网站制作步骤编程的网站都有哪些

引子&#xff1a;规模化敏捷转型从来不是一件容易的事情。当只有1-2个敏捷团队进行协同的时候&#xff0c;计划和工作同步是可控的。团队和产品负责人互相聊一聊&#xff0c;基本就能搞清楚需要做什么&#xff0c;一个简单的SOS架构&#xff08;Scrum of Scrums&#xff09;就能…

常州网站建设包括哪些用框架做网站如何居中

效果 1、下载和安装VS2019 https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ 登录需要用户名和密码 安装后需要联网下载组件的,安装的时候要勾选使用C++的桌面开发 2、下载和安装显卡驱动 查看自己的显卡型号 从英伟达下载和安装最新驱动

通信管理局网站 备案工作室做什么项目好

UGUI是Unity引擎中的一套用户界面系统&#xff0c;用于开发游戏和应用程序的UI界面。在进行UGUI开发时&#xff0c;可以采取以下优化方法和注意事项&#xff1a; 使用UI对象池&#xff1a;在频繁创建和销毁UI对象时&#xff0c;可以使用对象池来重复利用已创建的UI对象&#xf…

网站页面设计工具网站响应时间 标准

索引可以说是Elasticsearch中非常重要的模块&#xff0c;一个索引可以视作关系数据库中的一张表&#xff0c;本帖将详细介绍与Elasticsearch索引相关的各种功能等。主要内容如下&#xff1a; 索引映射(mapping)结构的定义方法&#xff0c;常用的各种字段类型和动态映射的使用。…

怎样让自己网站的文章被百度收录嘉兴网站建设嘉兴

C之STL整理&#xff08;1&#xff09;之STL、vector、map、set数据结构初识 注&#xff1a;整理一些突然学到的C知识&#xff0c;随时mark一下 例如&#xff1a;忘记的关键字用法&#xff0c;新关键字&#xff0c;新数据结构 C 的 STL C之STL整理&#xff08;1&#xff09;之ST…