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

电商加盟网站建设/搜索引擎平台有哪些软件

电商加盟网站建设,搜索引擎平台有哪些软件,自己做淘宝客网站,西安做网站的公司报价/// 线程的资源访问冲突:多个线程同时申请一个资源,造成读写错乱。 /// 解决方案:上锁,lock{执行的程序段}:同一时刻,只允许一个线程访问该程序段。 /// 死锁问题: /// 程序中的锁过多&#xf…

    /// 线程的资源访问冲突:多个线程同时申请一个资源,造成读写错乱。
    /// 解决方案:上锁,lock{执行的程序段}:同一时刻,只允许一个线程访问该程序段。
    /// 死锁问题:
    /// 程序中的锁过多,某一线程需要多个锁资源,而某个资源被另一线程占用,另一个线程同样如此,(谁也不愿先释放资源)形成闭环,线程无法继续进行。
    /// 解决方案:使用调度算法,让某一个被占用的资源被线程释放或关闭某个线程。 

// 资源访问冲突

    class State{private Object _lock = new Object();private int state = 100;private void test(){if(100 == state){Console.Write("state=" + state);}state++;}private void test2(){if (101 == state){Console.Write("state=" + state);}state++;}public void ChangeState(){Thread h = new Thread(test);Thread v = new Thread(test2);// h.Start();// v.Start();// state=100state=100state=101state=100请按任意键继续. . .lock (_lock){h.Start();v.Start();// state=100请按任意键继续. . .// state=100state=101请按任意键继续. . .}}}

// 主程序

    class StateProgram{static void Main(string[] args){State state = new State();for (int i = 0; i < 10; i++){Thread t = new Thread(state.ChangeState);t.Start();}Thread.Sleep(1000);}}

// 死锁

    class Deadlock{Object _lock = new Object();Object _lock2 = new Object();private int flag = 0;public void test(){lock (_lock){Console.WriteLine("我拿到了锁1");lock (_lock2){Console.WriteLine("我拿到了锁2");if(0 == flag){Console.WriteLine("我是第一名");flag = 1;}else{Console.WriteLine("我是第二名");}}}}public void test2(){lock (_lock2){Console.WriteLine("他拿到了锁2");lock (_lock){Console.WriteLine("他拿到了锁1");if (0 == flag){Console.WriteLine("他是第一名");flag = 1;}else{Console.WriteLine("他是第二名");}}}}}

// 主程序

            Deadlock star = new Deadlock();Thread t1 = new Thread(star.test);Thread t2 = new Thread(star.test2);t1.Start();t2.Start();//我拿到了锁1//他拿到了锁2

// 解决方案1:锁同步

    class Deadlock{Object _lock = new Object();Object _lock2 = new Object();private int flag = 0;public void test(){lock (_lock){Console.WriteLine("我拿到了锁1");lock (_lock2){Console.WriteLine("我拿到了锁2");if(0 == flag){Console.WriteLine("我是第一名");flag = 1;}else{Console.WriteLine("我是第二名");}}}}public void test2(){lock (_lock){Console.WriteLine("他拿到了锁2");lock (_lock2){Console.WriteLine("他拿到了锁1");if (0 == flag){Console.WriteLine("他是第一名");flag = 1;}else{Console.WriteLine("他是第二名");}}}}}

我拿到了锁1
我拿到了锁2
我是第一名
他拿到了锁2
他拿到了锁1
他是第二名
请按任意键继续. . . 

// 解决方案2:做标签

    class Deadlock{Object _lock = new Object();Object _lock2 = new Object();private int flag = 0;private int _flag = 0;public void test(){if (0 == _flag){lock (_lock){Console.WriteLine("我拿到了锁1");lock (_lock2){Console.WriteLine("我拿到了锁2");if (0 == flag){Console.WriteLine("我是第一名");flag = 1;}else{Console.WriteLine("我是第二名");}}}}_flag = 1;}public void test2(){if(1 == _flag){lock (_lock2){Console.WriteLine("他拿到了锁2");lock (_lock){Console.WriteLine("他拿到了锁1");if (0 == flag){Console.WriteLine("他是第一名");flag = 1;}else{Console.WriteLine("他是第二名");}}}}}}
            Deadlock star = new Deadlock();Thread t1 = new Thread(star.test);Thread t2 = new Thread(star.test2);t1.Start();Thread.Sleep(1000);t2.Start();

我拿到了锁1
我拿到了锁2
我是第一名
他拿到了锁2
他拿到了锁1
他是第二名
请按任意键继续. . .

相关文章:

C#__资源访问冲突和死锁问题

/// 线程的资源访问冲突&#xff1a;多个线程同时申请一个资源&#xff0c;造成读写错乱。 /// 解决方案&#xff1a;上锁&#xff0c;lock{执行的程序段}:同一时刻&#xff0c;只允许一个线程访问该程序段。 /// 死锁问题&#xff1a; /// 程序中的锁过多&#xf…...

机器学习——Logistic Regression

0、前言&#xff1a; Logistic回归是解决分类问题的一种重要的机器学习算法模型 1、基本原理&#xff1a; Logistic Regression 首先是针对二分类任务提出的一种分类方法如果将概率看成一个数值属性&#xff0c;则二元分类问题的概率预测就可以转化为一个回归问题。这种思路最…...

创建husky规范前端项目

创建husky规范前端项目 .husky文件是一个配置文件&#xff0c;用于配置Git钩子。Git钩子是在Git操作时触发的脚本&#xff0c;可以用于自动化一些任务&#xff0c;比如代码格式化、代码检查、测试等。.husky文件可以指定在Git的不同操作&#xff08;如commit、push等&#xff…...

深浅拷贝与赋值

数据类型 数据类型 在JavaScript中&#xff0c;数据类型有两大类。一类是基本数据类型&#xff0c;一类是引用数据类型。 基本数据类型有六种&#xff1a;number、string、boolean、null、undefined、symbol。 基本数据类型存放在栈中。存放在栈中的数据具有数据大小确定&a…...

bert ranking pairwise demo

下面是用bert 训练pairwise rank 的 demo import torch from torch.utils.data import DataLoader, Dataset from transformers import BertModel, BertTokenizer from sklearn.metrics import pairwise_distances_argmin_minclass PairwiseRankingDataset(Dataset):def __ini…...

GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图

GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。例如在科研编程、绘图领域&#xff1a;1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATLAB还是其他语言&#xff0c;都可以为你提供相关的代码示例。2、数据可视…...

SpringBoot整合Swagger3

前言 swagger是啥&#xff0c;是干什么的&#xff0c;有什么用&#xff0c;我想在这里我就不用介绍了&#xff0c;下面直接代码演示。 添加依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0…...

detectron2 install path

>>> import detectron2 >>> detectron2_path detectron2.__file__ >>> print(detectron2.__file__)...

如何将DHTMLX Suite集成到Scheduler Lightbox中?让项目管理更可控!

在构建JavaScript调度器时&#xff0c;通常需要为最终用户提供一个他们喜欢的方式来计划事件&#xff0c;这是Web开发人员喜欢认可DHTMLX Scheduler的重要原因&#xff0c;它在这方面提供了完全的操作自由&#xff0c;它带有lightbox弹出窗口&#xff0c;允许通过各种控件动态更…...

什么是JVM常用调优策略?分别有哪些?

目录 一、JVM调优 二、堆内存大小调整 三、垃圾回收器调优 四、线程池调优 一、JVM调优 Java虚拟机&#xff08;JVM&#xff09;的调优主要是为了提高应用程序的性能&#xff0c;包括提高应用程序的响应速度和吞吐量。以下是一些常用的JVM调优策略&#xff1a; 堆内存大小…...

《向量数据库指南》——向量数据库Milvus Cloud 2.3的可运维性:从理论到实践

一、引言 在数据科学的大家庭中,向量数据库扮演着重要角色。它们通过独特的向量运算机制,为复杂的机器学习任务提供了高效的数据处理能力。然而,如何让这些数据库在生产环境中稳定运行,成为了运维团队的重要挑战。本文将深入探讨向量数据库的可运维性,并分享一些有趣的案…...

select多选回显问题 (取巧~)

要实现的效果&#xff1a; 实际上select选择框&#xff0c;我想要的是数组对象&#xff0c;但是后端返回来的是个字符串。 以下是解决方法&#xff1a; 以上是一种简单的解决方法~ 也可以自己处理数据或者让后端直接改成想要的格式。...

光伏并网双向计量表ADL400

安科瑞 华楠 ADL400 导轨式多功能电能表&#xff0c;是主要针对电力系统&#xff0c;工矿企业&#xff0c;公用设施的电能统计、 管理需求而设计的一款智能仪表&#xff0c;产品具有精度高、体积小、安装方便等优点。集成常见电 力参数测量及电能计量及考核管理&#xff0c;…...

十三、MySQL(DQL)语句执行顺序

1、DQL语句执行顺序: &#xff08;1&#xff09;from来决定表 # where来指定查询的条件 &#xff08;2&#xff09;group by指定分组 # having指定分组之后的条件 &#xff08;3&#xff09;select查询要返回哪些字段 &#xff08;4&#xff09;order by根据字段内容&#…...

【高德地图】根据经纬度多边形的绘制(可绘制区域以及任意图形)

官方示例 https://lbs.amap.com/demo/jsapi-v2/example/overlayers/polygon-draw <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&quo…...

C++ std::pair and std::list \ std::array

std::pair<第一个数据类型, 第二个数据类型> 变量名 例如&#xff1a; std::pair<int, string> myPair; myPair.first;拿到第一个int变量 myPair.second拿到第二个string变量 std::pair需要引入库#include "utility" std::make_pair() 功能制作一个…...

C++的类型转换

前言 我们都知道C是兼容C语言的在C语言中存在两种方式的类型转换&#xff0c;分别是隐式类型转换和显示类型转换&#xff08;强制类型转换&#xff09;&#xff0c;但是C觉得C语言的这套东西是够好&#xff0c;所以在兼容C语言的基础上又搞了一套自己的关于类型转换的东西。 目…...

【Selenium2+python】自动化unittest生成测试报告

前言 批量执行完用例后&#xff0c;生成的测试报告是文本形式的&#xff0c;不够直观&#xff0c;为了更好的展示测试报告&#xff0c;最好是生成HTML格式的。 unittest里面是不能生成html格式报告的&#xff0c;需要导入一个第三方的模块&#xff1a;HTMLTestRunner 一、导…...

【APISIX】W10安装APISIX

Apache APISIX 是一个动态、实时、高性能的云原生 API 网关&#xff0c;提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。以下简单介绍Windows下借助Docker Desktop来安装APISIX。 具体应用场景可参考官网&#xff08;https://apisix.…...

[Linux]动静态库

[Linux]动静态库 文章目录 [Linux]动静态库见一见库存在库的原因编写库模拟编写静态库模拟使用静态库模拟编写动态库模拟使用静态库 库的加载原理静态库的加载原理动态库的加载原理 库在可执行程序中的编址策略静态库在可执行程序中的编址策略动态库在可执行程序中的编址策略 见…...

2023高教社杯数学建模国赛C题思路解析+代码+论文

如下为C君的2023高教社杯全国大学生数学建模竞赛C题思路分析代码论文 C题蔬菜类商品的自动定价与补货决策 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差, 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&…...

macos13 arm芯片(m2) 搭建hbase docker容器 并用flink通过自定义richSinkFunction写入数据到hbase

搭建hbase docker容器 下载镜像 https://hub.docker.com/r/satoshiyamamoto/hbase/tags 点击run 使用镜像新建容器 填写容器名和 容器与宿主机的端口映射 测试 通过宿主机访问容器内的hbase webUI http://localhost:60010/master-status...

FLV封装格式

摘要&#xff1a;本文描述了FLV的文件格式。   关键字&#xff1a;FLV 1 简介 FLV流媒体格式是sorenson公司开发的一种视频格式&#xff0c;全称为Flash Video。 它的出现有效地解决了视频文件导入Flash后&#xff0c;使导出的SWF文件体积庞大&#xff0c;不能在网络上很好的…...

[NLP]LLM---FineTune自己的Llama2模型

一 数据集准备 Let’s talk a bit about the parameters we can tune here. First, we want to load a llama-2-7b-hf model and train it on the mlabonne/guanaco-llama2-1k (1,000 samples), which will produce our fine-tuned model llama-2-7b-miniguanaco. If you’re …...

git在linux情况下设置git 命令高亮

只需要执行下面这个命令&#xff0c;这样就可以在查看git status明亮的时候高亮显示。 git config --global color.status auto未设置前 谁知之后...

C++ 表驱动方法代替if-else

连着用几十个if-else代码&#xff0c;运行效率不高&#xff0c;关键还手累,记得改成表驱动方法 #include <iostream> #include <unordered_map> #include <functional>using namespace std;void handleCondition1() {// 处理条件 1 的代码std::cout <<…...

2023国赛数学建模E题思路分析 - 黄河水沙监测数据分析

# 1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响&#xff0c; 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…...

cadence后仿真/寄生参数提取/解决pin口提取不全的问题

post-simulation设置顺序与规则 1.Rules 设置 2.inputs设置 3.outputs设置 4.PEX 设置 会出现错误1&#xff0c;后有解决方案 第一步 :Netlist 第二步&#xff1a;LVS 5.RUN PEX 先RUN&#xff0c;后按照图中1 2 3步骤操作 点击OK之后&#xff0c;显示Calibre信息&#xff…...

Vue中实现3D得球自动旋转

具体实现 安装echarts 在终端下安装echarts npm install -D echarts 安装echarts-gl 在终端下安装echarts-gl npm install -D echarts-gl earth3D组件 earth3D.vue <template><div class"globe3d-earth-container" ><div class"globe3d-earth&qu…...

使用wkhtmltoimage实现生成长图分享

需求 用户可以选择以长图的形式分享本网页 方法 wkhtmltopdf wkhtmltopdf url filewkhtmltoimage url file java Runtime.getRuntime().exec() 下载 直接去官网下载对应的版本&#xff1a;官网 命令行使用WK > wkhtmltopdf https://www.nowcoder.com /opt/project/…...