//
// Created by gxf on 2019/12/16.
//
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h> void increase_num(); int sharedi=; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int main(){
pthread_t t1, t2, t3;
pthread_create(&t1, NULL,increase_num, NULL);
pthread_create(&t2, NULL,increase_num, NULL);
pthread_create(&t3, NULL,increase_num, NULL); pthread_join(t1, NULL);
pthread_join(t2, NULL);
pthread_join(t3, NULL); printf("shared:%d\n", sharedi);
return ;
} void increase_num(){
for (int i = ; i < ; i++){
if (pthread_mutex_lock(&mutex) != ) {
perror("mutex lock fail");
exit(EXIT_FAILURE);
}
long temp = sharedi;
temp += ;
sharedi = temp;
if (pthread_mutex_unlock(&mutex)) {
perror("mutex unlock fail");
exit(EXIT_FAILURE);
}
}
}

c线程使用锁控制并发的更多相关文章

  1. 超越线程池:Java并发并没有你想的那么糟糕

    转载: 超越线程池:Java并发并没有你想的那么糟糕

  2. 基于线程池的多并发Socket程序的实现

    Socket“服务器-客户端”模型的多线程并发实现效果的大体思路是:首先,在Server端建立“链接循环”,每一个链接都开启一个“线程”,使得每一个Client端都能通过已经建立好的线程来同时与Ser ...

  3. Tomcat如何使用线程池处理远程并发请求

    Tomcat如何使用线程池处理远程并发请求 通过了解学习tomcat如何处理并发请求,了解到线程池,锁,队列,unsafe类,下面的主要代码来自 java-jre: sun.misc.Unsafe j ...

  4. EF+MySQL乐观锁控制电商并发下单扣减库存,在高并发下的问题

    下订单减库存的方式 现在,连农村的大姐都会用手机上淘宝购物了,相信电商对大家已经非常熟悉了,如果熟悉电商开发的同学,就知道在买家下单购买商品的时候,是需要扣减库存的,当然有2种扣减库存的方式, 一种是 ...

  5. Java线程新特征——Java并发库

    一.线程池   Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利.为了编写高效稳定 ...

  6. Java多线程中的进程,线程,并行,并发

    2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,我们发现只有运行的程序才会出现进程. 进程:就是正在运行的程序. 进程是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内 ...

  7. [转载] PHP 线程,进程和并发

    转载自http://chenpeng.info/html/3021 进程 进程是什么?进程是正在执行的程序:进程是正在计算机上执行的程序实例:进程是能分配给处理器并由处理器执行的实体. 进程一般会包括 ...

  8. 既然CPU同一时间只能执行一个线程,为什么存在并发问题

    一点小疑惑终于解开啦 1.CPU的时间是按时间片分的,而不是一个时间点,并发问题是由于CPU线程切换导致的. 现在假设有一段代码 if(i == 1) { i++; //断点1 system.out. ...

  9. Java并发编程:什么是线程安全,以及并发必须知道的几个概念

    废话 众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的.为了追求成为一个好的Java程序员,我决定从今天开始死磕Jav ...

随机推荐

  1. Linq to sql中继承类映射转换问题

    类型为的数据成员“Int32 VTOUID”不是类型的映射的一部分.该成员是否位于继承层次结构根节点的上方? 想躲开Linq to sql中问题限制可真是不容易: http://www.makaido ...

  2. 生成count位随机数工具类

    工具类 import java.util.Random; /** * 生成6位随机数字 */ public class GeneratorCode { /** * * @Title: getCode ...

  3. 月光大盗(moon thief)

    欢迎大家玩月光大盗! welcome to play moon thief!developer email:zhangdeke@126.com

  4. 阿里云RocketMQ的消费者简单实现

    业务场景之类的请看另一篇生产者的实现: package com.ttt.eee; import com.aliyun.openservices.ons.api.Action; import com.a ...

  5. ASP.NET请求过程-Handler

    什么事Handler asp.net程序所有的请求都是handler处理的.以前的webform我们访问的地址是xxxxx.aspx地址,其实他也会到一个handler(我们写的业务代码都在handl ...

  6. 1269: 划分数(Java)

    WUSTOJ 1269: 划分数 参考博客 果7的博客 题目   将 1 个数 n 分成 m 份,求划分的种数.更多内容点击标题. 分析   唯一需要注意的地方是不考虑顺序.其他的直接看代码即可. 代 ...

  7. 创客课堂——Scratch的操作界面

    大家好,这里是蓝精灵创客公益课堂,我是蓝老师 上期我们了解了scratch软件进行了简单的了解,很多朋友都已经按照上期方法下载安装好了软件. 那么今天蓝老师就和大家一起认识下Scratch的操作界面及 ...

  8. 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法

    ref : https://dsqiu.iteye.com/blog/1700312 本文内容框架: §1 Boyer-Moore算法 §2 Horspool算法 §3 Sunday算法 §4 KMP ...

  9. zcat +文件名.gz | grep "查找内容"

    linux  gz查看 zcat +文件名.gz | grep "查找内容" 解压 rar x xxxx.rar

  10. spring整合quartz框架

    spring整合quartz: 网上也有很多教程,好多都是基于配置方式,我们使用当然怎么简单就怎么用,所以这里介绍基于注解方式整合quartz.前提:你需要有一个能运行的web项目. 1.引依赖: & ...