C语言的基本练习(003-1)之多线程应用<库文件不方便使用改为C++>

c++语言的多线程应用,代码如下:

#include <iostream>
#include <thread>
#include <mutex>

#include <bits/stdc++.h>
#include <unistd.h>

using namespace std;

mutex TESTMUTEX;

void myThread( unique_ptr<string >a)//定义线程入口函数
{
    //TESTMUTEX.lock();
    cout<<"a value "<< *a<<endl;
    //TESTMUTEX.unlock();
}

void myThread_2( unique_ptr<string >a)//定义线程入口函数
{
    //TESTMUTEX.lock();
    cout<<"b value "<< *a<<endl;
    //TESTMUTEX.unlock();
}

void run_thread()
{
    unique_ptr<string >a(new string("I am an apple\n"));

    unique_ptr<string >b(new string("I am a banana\n"));

    std::thread thread_test(myThread,std::move(a));//定义 线程变量 定义的时候线程就会开始执行

    std::thread thread_test_2(myThread_2,std::move(b));//定义 线程变量 定义的时候线程就会开始执行

    thread_test_2.join();

    thread_test.join();

    //cout<<"a -> "<< *a<<endl;
}

int main(){

    run_thread();

    //thread(run_thread);

    //thread thread1(myThread,ref("i am apple"));

    //thread thread2(myThread_2);

    //thread1.join();

    //thread2.join();

    return 0;
}

请自行取消注释,观察:

(1)是否可以运行,会出现什么错误。

(2)取消锁和加锁是分别什么结果,结果有趣也很让人着迷。

(3)如何运行基本的多线程。

(4)既简单又可以复杂,值得好好研究。

(5)基本结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU21hcnRHcmlkZXF1YXRpb24=,size_8,color_FFFFFF,t_70,g_se,x_16

感谢源码提供者,以上代码为集合整理。如遇问题,请您留言。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值