C++ 11 深度学习(十)多线程
生活随笔
收集整理的這篇文章主要介紹了
C++ 11 深度学习(十)多线程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
線程創建
方式一:調用函數
#include<thread>void CreateThread() {int a=100;cout<<"This is Thread: "<<a<<endl; }int main() {thread Threadone(CreateThread);Threadone.join();//orThreadone.detach();}方式二:使用類對象,需要operator( )( )才能成為可調用對象
#include<thread> #include <iostream> #include<mutex> using namespace std;class TA { public:void operator()()//不能帶參數{cout << "Thread to start" << endl;} };int main() {mutex tex;TA ta;thread Mythread(ta);Mythread.join();cout << "主線程執行" << endl;return 0; }注意
1.joinable()可以用來查看是否處于join或者detach狀態,如果是返回true,否則返回false。
全局函數作為線程入口分析參數傳遞內存操作
1.線程中所有傳遞的參數是基礎類型,所有參數都會被復制一份。
2.線程中傳遞的是對象,對象會被復制拷貝。
線程函數傳遞指針和引用
1.在傳入指針或者引用的情況下,防止線程訪問的空間被提前釋放,? 傳遞堆內存中;使用靜態的;參數放到類成員當中。
2.在線程中傳遞參數使用引用需要加入ref( )。
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的C++ 11 深度学习(十)多线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酷酷的网名92个
- 下一篇: 美梦打一成语 美梦打一成语答案