1. 程式人生 > >Qt 多執行緒的一個例子

Qt 多執行緒的一個例子

(1)用VC6.0新建個Win32 Console Application工程

(2)Project Settings裡面Link標籤頁面新增qtmain.lib qt-mt320.lib
   Project Settings裡面C/C++標籤頁面新增QT_THREAD_SUPPORT

(3)原始碼檔案(main.cpp):

#include <qthread.h>

class MyThread : public QThread
{    
public:
    virtual void run();
   
};

void MyThread::run()
{
    for( int count = 0; count < 20; count++ )
    {
        sleep( 1 );
        qDebug( "Ping!" );
    }
}

int main()
{
    MyThread a;
    MyThread b;
    a.start();
    b.start();
    a.wait();
    b.wait();
}
註釋:
This will start two threads, each of which writes Ping! 20 times to the screen and exits.
The wait() calls at the end of main() are necessary because exiting main() ends the program,
unceremoniously killing all other threads.
Each MyThread stops executing when it reaches the end of MyThread::run(),
just as an application does when it leaves main(). 

相關推薦

Qt 執行一個例子

(1)用VC6.0新建個Win32 Console Application工程(2)Project Settings裡面Link標籤頁面新增qtmain.lib qt-mt320.lib   Project Settings裡面C/C++標籤頁面新增QT_THREAD_SUP

一個執行例子,來理解Sleep的機制和用法

這個例子是兩個執行緒用於售票,保證輪流售票的有序性。 #include <windows.h> #include <iostream> DWORD WINAPI Fun1Proc(LPVOID lpParameter);//執行緒1 DWORD W

Qt---執行應用的例子

伺服器端 TimeThread建立TcpSocket,負責實現Run()函式,傳送伺服器端資訊,然後斷開連線。 TimeSever中建立TimeThread,實incomingConnection(int socketDescriptor)函式每當有

Python執行例子

Python多執行緒小例子 1、在主執行緒中建立子執行緒 下面的程式碼一共建立了三個執行緒:主執行緒、coding 執行緒和music 執行緒,最後使用thread_list 裝載執行緒

QT執行淘酒,持續更新

第一階段 首先必須區分三個概念: 主執行緒:在程式初始化完成後,主執行緒就進入了main()函式開始執行應用程式碼,一般在主執行緒上構建介面物件並呈現之,然後就進入了事件迴圈以處理各類訊息(控制元件繪製、使用者輸入、系統輸出等訊息)。這就是熟知的事件驅動模型。 工作執行緒:也就是子執

QT執行中,物件訊號與槽連線不上的解決辦法

1、在接收者建立執行緒中,把接收者移動到主執行緒中: pReceiverObj->moveToThread(QApplication::instance()->thread()); 2、這樣傳送訊號的時候,就會在主執行緒事件佇列處理中來處理了。 把connect的最

QT學習記錄2(QT執行

對QT多執行緒的理解 qt多執行緒基於QThread類,在使用的時候,可以選擇新建類,然後繼承QThread類,然後重寫run函式,從而實現QT多執行緒   QT多執行緒小例程 首先,建立一個QT工程,名字叫做mythread,視窗選擇widget,然後一路下一步即可,生成

qt執行之 std::thread

不時見到有人會這樣做: 不使用QThread,而是使用pthread等平臺相關的底層 api 而又不想使用底層執行緒間同步、通訊的api 那麼,如何使用pthread,而又使用Qt提供的執行緒間機制呢? 本文的初衷源於此,但是使用的的是C++0x 的 std::threa

Qt 執行伺服器與客戶端

文章目錄 思路 伺服器 myserver.h myserver.cpp mythread.h mythread.cpp mysocket.h mysocket.cpp

Qt執行同步

       一、Qt中使用多執行緒時候,多執行緒的同步就是一個不可避免的問題。多執行緒的同步就是使多個執行緒在同時執行同一段程式碼的時候,有順序的執行,不會出現同時有兩個或者多個執行緒執行同一段程式碼的情況,特別是在對變數或者檔案執行寫操作的時候。也就是所謂的

Qt執行-QThreadPool執行池與QRunnable

介紹 執行緒的建立及銷燬需要與系統互動,會產生很大的開銷。若需要頻繁的建立執行緒建議使用執行緒池,有執行緒池維護一定數量的執行緒,當需要進行多執行緒運算時將運算函式傳遞給執行緒池即可。執行緒池會根據可用執行緒進行任務安排。 QThreadPool 此類為Qt提供

QT 執行程式設計

QT通過三種形式提供了對執行緒的支援。它們分別是,一、平臺無關的執行緒類,二、執行緒安全的事件投遞,三、跨執行緒的訊號-槽連線。這使得開發輕巧的多執行緒Qt程式更為容易,並能充分利用多處理器機器的優勢。多執行緒程式設計也是一個有用的模式,它用於解決執行較長時間的操作而不至於使用者介面失去響應。在Qt的早期

Qt執行執行的等待和喚醒】QWaitCondition

QWatiCondition的成員函式 ·QWaitCondition() ·~QWaitCondition() ·bool wait ( QMutex * mutex, unsigned long time = ULONG_MAX ) ·vo

Qt執行學習:建立執行

【為什麼要用多執行緒?】 傳統的圖形使用者介面應用程式都只有一個執行執行緒,並且一次只執行一個操作。如果使用者從使用者介面中呼叫一個比較耗時的操作,當該操作正在執行時,使用者介面通常會凍結而不再響應。這個問題可以用事件處理和多執行緒來解決。 【Linux有執行緒的概念嗎?

QT執行臨界資源互斥

多執行緒是個老梗,一般都會遇到,同樣臨界資源的互斥訪問也是一個老生長談的問題了。這裡把最近使用的一種方法分享一下。 問題場景:主執行緒根據一定條件建立多個子執行緒,子執行緒執行的是同一個類不同例項的方法,該方法中需要向主執行緒傳送一個訊息顯示一個對話方塊用以接收使用者輸入;

Qt執行程式設計

Qt執行緒類 Qt 包含下面一些執行緒相關的類: QThread 提供了開始一個新執行緒的方法 QThreadStorage 提供逐執行緒資料儲存 QMutex   提供相互排斥的鎖,或互斥量 QMutexLocker 是一個便利類,它可以自動對QMut

Handler執行通訊例子(post和sendMessage)

前言   Android的訊息傳遞機制是另外一種形式的“事件處理”,這種機制主要是為了解決Android應用中多執行緒的問題,在Android中不允許Activity新啟動的執行緒訪問該Activity裡的UI元件,這樣會導致新啟動的執行緒無法改變UI元件的屬性值。但實際開發中,很多地方需要在

QT 執行 使用UI

直接上程式碼: qt的ui操作必須在主執行緒做的,分支執行緒只能傳送訊息給主執行緒進行引導操作。 所以平常我們的程式碼都是直接使用一個執行緒來調動UI,但是不同的執行緒同時需要使用UI來顯示結果之類的就需要相互協調; 如果沒有invoke之類的方法,可以考慮直接使用qt 的Qthread

java socket伺服器客戶端執行例子

package com.xueyoucto.xueyou; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; im

java執行操作例子-(以銀行存錢取錢為例)

     以前一直沒有養成一個梳理知識的習慣,今天覆習到多執行緒的知識的,想到的經典的存錢取錢多執行緒同步機制,今天在這裡梳理下,錯的地方請各位大佬指正1:多執行緒同步的方法1:使用synchronized關鍵字修飾方法和程式碼塊(這就是兩種了)2:使用特殊變數volatit