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)基本结果如下:

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

被折叠的 条评论
为什么被折叠?



