linux多线程顺序打印abc,c++11 多线程依次打印ABC

并发 练习代码

#include

#include

#include

#include

using namespace std;

std::mutex mtx;

std::condition_variable cv;

char arr[] = { 'a','b','c' };

char message = 'a';

void test(int i) {

for(int j = ;j < ;++j){

std::unique_lock<:mutex> lk(mtx);

cv.wait(lk, [=] {return message == arr[i]; });

std::cout << arr[i];

message = arr[(i + ) % ];

lk.unlock();

cv.notify_all();

}

}

int main()

{

std::thread t[];

for (int i = ; i < ; ++i) {

t[i] = std::thread(test,i);

}

for (int i = ; i < ; ++i) {

t[i].join();

}

std::cout << std::endl;

return ;

}

11deb6f9e7120f864d7b496a7b90e698.png

Java多线程循环打印ABC的5种实现方法

https://blog.csdn.net/weixin_39723337/article/details/80352783 题目:3个线程循环打印ABC,其中A打印3次,B打印2次,C打印1次,循环 ...

多线程循环打印ABC

主要是利用线程的wait()和notify()来实现 public class MyThread implements Runnable { private String name; private ...

JAVA 多线程轮流打印ABC

采用Thread+Semaphore实现,思路很简单 import java.io.IOException; import java.util.concurrent.Semaphore; public ...

python多线程交替打印abc以及线程池进程池的相关概念

import threading import sys import time def showa(): while True: lockc.acquire() #获取对方的锁,释放自己的锁 prin ...

python 多线程实现循环打印 abc

python 多线程实现循环打印 abc 好久没写过python了, 想自己实践一下把 非阻塞版 import threading import time def print_a(): global ...

Java多线程wait和notify协作,按序打印abc

有一个经典的多线程面试题:启三个线程,按序打印ABC 上代码: package cn.javaBase.study_thread1; class MyRunnable1 implements Runn ...

C&plus;&plus;11多线程教学(二)

C++11多线程教学II 从我最近发布的C++11线程教学文章里,我们已经知道C++11线程写法与POSIX的pthreads写法相比,更为简洁.只需很少几个简单概念,我们就能搭建相当复杂的处理图片程 ...

C&plus;&plus;11多线程教学II

从我最近发布的C++11线程教学文章里,我们已经知道C++11线程写法与POSIX的pthreads写法相比,更为简洁.只需很少几个简单概念,我们就能搭建相当复杂的处理图片程序,但是我们回避了线程同步 ...

随机推荐

python支持mysql

MySQLdb只支持Python2.,还不支持3. 可以用PyMySQL代替.安装方法:pip install PyMySQL 然后在需要的项目中,把 init.py中添加两行: import pym ...

oracle 数据恢复&comma;只有oradata文件夹里的文件&comma;没有备份文件的数据库恢复&comma;重装系统后&comma;oracle 10g数据库恢复

格式化重装系统后,才想起来oracle 10g 数据库没有做备份,开始以为很麻烦,没想到数据库恢复的还挺顺利的 恢复方法: 1,把原来的数据库文件备份,(D:\oracle\product\10.2. ...

URL请求过程

一.URL(Uniform Resource Locator)统一资源定位符,是可以从互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址.互联网上的每一个文件都有一个唯一的UR ...

在ASP&period;NET Core中构建路由的5种方法

原文链接 :https://stormpath.com/blog/routing-in-asp-net-core 在ASP.NET Core中构建路由的5种方法 原文链接 :https://storm ...

C&plus;&plus;———库函数cstring及string方法解读

1.string与cstring区别 是C++标准库头文件.包含了拟容器class std::string的声明(不过class string事实上只是basic_stri ...

windows环境下面批量修改文件夹名称

ren 1 A ren 2 B ren 3 C ren 4 D 电脑桌面新建文档 ---> 批量修改文件夹名称.txt 修改文件名称为:--->批量修改文件夹名称.bat 内容如上: 双击 ...

mod&lowbar;conference ESL控制二(事件)

根据上篇所述功能需求,esl需要处理以下几类事件: ESL_EVENT_CHANNEL_*  #channel相关事件,用户判断参会者是否应答.计费 DTMF事件 #识别参会者按键,根据按键进行操作( ...

(stack)Train Problem I hdu1022

Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

在Android中实现图片的裁剪

本实例的功能是将用户选择的图片裁剪后放入ImagView,布局文件是个Button和ImageView.为了图片的正常显示,我们在裁剪后先将裁剪好的图片先存放到SD卡中,这样就能在以后开启应用 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值