线程同步和线程死锁

2023-10-29

线程同步

前面刚介绍了有关线程的基本认识,那我们先来思考一个小问题,两个线程之间有没有可能同时对一个资源发起访问呢,答案是肯定,那么在某些情况下这样的同时访问会引发一系列冲突,先来看一个简单的例子。

创建两个线程,各自将count增加2500次,然后输出最后的结果,如下:

#include<stdio.h>
#include<pthread.h>

int count = 0;
void *thread_count(void *arg)
{
    int i =0;
    while(i<5000)
    {
        i++;    
        count++;
    }
    return NULL;
}


int main()
{
    pthread_t id1,id2;
    pthread_create(&id1,NULL,thread_count,NULL);    
    pthread_create(&id2,NULL,thread_count,NULL);

    pthread_join(id1,NULL);
    pthread_join(id2,NULL);
    printf("count final val is : %d\n",count);
    return 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程同步和线程死锁 的相关文章

随机推荐

  • 删除对象中的指定元素怎么操作?

    小程序开发中 要实现的功能是 长按某个元素 将其移动到另一个对象中 例如 长按array1的苹果 苹果插入到array2中 菠萝 的前面 而array1中的苹果 删除 var array1 d 1 name 苹果 d 2 name 橘子 d
  • 两条语句告诉你 Python3 当中 [[]] * 10 和 [[] for i in range(10)] 的区别

    gt gt gt aa 10 gt gt gt bb for i in range 10 gt gt gt aa bb True gt gt gt aa 0 is aa 1 True gt gt gt bb 0 is bb 1 False
  • 面试官:说说对React中类组件和函数组件的理解?有什么区别?

    一 类组件 类组件 顾名思义 也就是通过使用ES6类的编写形式去编写组件 该类必须继承React Component 如果想要访问父组件传递过来的参数 可通过this props的方式去访问 在组件中必须实现render方法 在return
  • 华为OD机试 - 拔河比赛(Java)

    题目描述 公司最近准备进行拔河比赛 需要在全部员工中进行挑选 选拔的规则如下 按照身高优先 体重次优先的方式准备比赛阵容 规定参赛的队伍派出10名选手 请实现一个选拔队员的小程序 输入为一个数组 记录了部门人员的身高 体重信息 如 身高 体
  • linux gz文件合并,快速合并多个fastq.gz文件

    案例描述 需要将Sample test1 R1 fastq gz和Sample test2 R2 fastq gz合并为test fastq gz 操作方法1 先zcat再gzip zcat Sample test 1 R1 fastq g
  • oracle客户端与服务端的连接

    author skate time 2010 08 16 oracle客户端与服务端的连接 参考如下 http blog csdn net wyzxg archive 2010 08 16 5815335 aspx oracle服务进程如何
  • ElasticSearch7.14配置SSL,使用https访问

    ElasticSearch7 14配置SSL 使用https访问 1 生成证书 备注 一定要在es用户中生成证书 1 生成elastic stack ca p12文件 bin elasticsearch certutil ca 2 生成el
  • Validator 用法详解

    validation 用法详解 1 常用注解说明 这是javax validation包中的 主要包括上述的几个注解 注解 描述 AssertFalse 被注释的元素必须为 false AssertTrue 同 AssertFalse De
  • jdbc连接mysql 5.7.17_java jdbc连接mysql报错:No suitable driver found for jdbc

    代码如下 importjava sql publicclassJdbcTest publicstaticvoidmain Stringargs Stringurl jdbc mysql localhost zhoujian Connecti
  • Jeesite4关于权限控制之根据部门公司进行过滤

    在开发中 根据不同的部门或者公司展示相应的数据这种情况是很常见的 但是在jeesite4 中该怎样进行过滤呢 其实在这个方面作者也有考虑 都直接封装好了官方文档请参考 数据权限调用 文档中也明确指出 这个是通过在后台管理系统中 通过打对勾的
  • 基于matlab的大米,大米颗数计算MATLAB软件

    应用背景 大米是人类的主食之一 是稻谷经清理 砻谷 碾米 成品整理等工序后制成的成品 人们购买米大多采用直接称量的方法 市面上也有许多仪器采用光电传感器等方式用于生产加工时米粒的计数 然而这样的方法都比较依赖于设备 不方便人们日常的使用 运
  • 前端mqtt使用总结

    本文转载自https www codenong com cs105863097 主要解决了 mqtt 连接 重连 数据实时传递等问题 简介 MQTT Message Queuing Telemetry Transport 消息队列遥测传输协
  • 电脑网线,网线排序

    网络的使用是越来越普遍 相信不少用户家里的电脑都是使用网线来链接的 当电脑网线不小心被折断了如何来网线排序呢 接下来就来接大家如何来给电脑网线排序 网线排序 双绞线的四对八根导线是有序排列的 对于100M及以上的网络传输速率 每一根线都有定
  • 剪贴板中图片转为BASE64格式

    需求 将图片复制到剪贴板后 希望将图片快捷地转换为BASE64格式 各种在线工具往往需要先将图片保存到本地 然后将本地文件上传 现在考虑将图片保存到本地这一步去掉 直接将图片从剪贴板粘贴到网页的某个元素中 网页触发粘贴事件并获取文件 然后转
  • WebSocket+php实现tail -f 命令的web版本 实时输出日志的增量 web监控log日志

    实现方式是 php的Workerman框架 js的WebSocket PHP workerman 官网地址 可以通过 composer 安装 require walkor workerman 3 5 JS socket WebSocket
  • 数据结构第二版,顺序栈的实现(c语言版)(初始化,入栈,出栈,取栈顶元素 ,遍历)

    include
  • 靶机4 DC-3(过程超详细)

    简介 DC靶场一共有9个 对于学习渗透测试人员 有很大的帮助 是非常不错的靶场 1 下载靶场 靶机名称 DC 3 包含1个flag 下载地址 DC 3 2 VulnHub 2 安装靶场 以DC 1为例 将文件解压 一压缩包形式进行下载 打开
  • 使用DBeaver连接达梦数据库

    下载地址 https dbeaver io download 0 选择类型ODBC 1 下载服务器安装目录的jdbc的jar包 2 编辑驱动设置 上传下载的DmJdbcDriver16 jar 并配置类名与URL模板及端口 3 测试连接 软
  • 浅谈ssm框架分层逻辑

    第一次接触ssm的时候感觉自己就是个无情的码字机器 完全跟着老师敲 每一行代码在干嘛都不是很理解 也经常看到这样的哀嚎 研究了一天后我也算是对这个框架有了一些浅薄的认识 这里我就完全用自己的理解来讲一下 如果说错欢迎指出 ssm Sprin
  • 线程同步和线程死锁

    线程同步 前面刚介绍了有关线程的基本认识 那我们先来思考一个小问题 两个线程之间有没有可能同时对一个资源发起访问呢 答案是肯定 那么在某些情况下这样的同时访问会引发一系列冲突 先来看一个简单的例子 创建两个线程 各自将count增加2500